On 07/03/2014 12:04 PM, Peter Krempa wrote:
Extract common operations done when creating an audit message to a
separate generic function that can be reused and convert RNG, disk, FS
and net audit to use it.
---
src/conf/domain_audit.c | 175 ++++++++++++++++--------------------------------
1 file changed, 57 insertions(+), 118 deletions(-)
diff --git a/src/conf/domain_audit.c b/src/conf/domain_audit.c
index 91095b1..4c4290c 100644
--- a/src/conf/domain_audit.c
+++ b/src/conf/domain_audit.c
@@ -93,46 +93,73 @@ virDomainAuditChardevPath(virDomainChrSourceDefPtr chr)
}
-void
-virDomainAuditDisk(virDomainObjPtr vm,
- const char *oldDef, const char *newDef,
- const char *reason, bool success)
+static void
+virDomainAuditGenericDev(virDomainObjPtr vm,
+ const char *type,
+ const char *oldsrcpath,
+ const char *newsrcpath,
+ const char *reason,
+ bool success)
{
+ char *newdev = NULL;
+ char *olddev = NULL;
char uuidstr[VIR_UUID_STRING_BUFLEN];
char *vmname;
vmname can be used unitialized in the cleanup section on OOM
char *oldsrc = NULL;
char *newsrc = NULL;
const char *virt;
- virUUIDFormat(vm->def->uuid, uuidstr);
- if (!(vmname = virAuditEncode("vm", vm->def->name))) {
- VIR_WARN("OOM while encoding audit message");
+ /* if both new and old source aren't provided don't log
anything */
+ if (!newsrcpath && !oldsrcpath)
Please move this to the next commit and let this one be just code movement.
return;
- }
+
+ if (virAsprintfQuiet(&newdev, "new-%s", type) < 0)
+ goto no_memory;
+
+ if (virAsprintfQuiet(&olddev, "old-%s", type) < 0)
+ goto no_memory;
+
+ virUUIDFormat(vm->def->uuid, uuidstr);
+
+ if (!(vmname = virAuditEncode("vm", vm->def->name)))
+ goto no_memory;
if (!(virt = virDomainVirtTypeToString(vm->def->virtType))) {
- VIR_WARN("Unexpected virt type %d while encoding audit message",
vm->def->virtType);
+ VIR_WARN("Unexpected virt type %d while encoding audit message",
+ vm->def->virtType);
virt = "?";
}
@@ -274,34 +228,19 @@ virDomainAuditNet(virDomainObjPtr vm,
virDomainNetDefPtr oldDef, virDomainNetDefPtr newDef,
const char *reason, bool success)
{
-
- VIR_AUDIT(VIR_AUDIT_RECORD_RESOURCE, success,
- "virt=%s resrc=net reason=%s %s uuid=%s old-net=%s new-net=%s",
- virt, reason, vmname, uuidstr,
- oldDef ? oldMacstr : "?",
- newDef ? newMacstr : "?");
-
- VIR_FREE(vmname);
+ virDomainAuditGenericDev(vm, "fs",
The resrc should be "net" here, not "fs".
+ oldDef ? oldMacstr : NULL,
+ newDef ? newMacstr : NULL,
+ reason, success);
}
/**
ACK with the nits fixed.
Jan