]> xenbits.xensource.com Git - libvirt.git/commitdiff
virlog: Introduce virLogDefineOutputs
authorErik Skultety <eskultet@redhat.com>
Thu, 17 Mar 2016 14:18:06 +0000 (15:18 +0100)
committerErik Skultety <eskultet@redhat.com>
Mon, 10 Oct 2016 06:27:24 +0000 (08:27 +0200)
Prepare a method that only defines a set of outputs. It takes a list of
outputs, preferably created by virLogParseOutputs. The original set of outputs
is reset and replaced by the new user-provided set of outputs.

Signed-off-by: Erik Skultety <eskultet@redhat.com>
src/libvirt_private.syms
src/util/virlog.c
src/util/virlog.h

index ae22a51723d5c49a02a020dfbb174979ab011972..5914769acfc7a35b587c8fa357e291b9eba9bfc8 100644 (file)
@@ -1871,6 +1871,7 @@ virLockSpaceReleaseResourcesForOwner;
 # util/virlog.h
 virLogDefineFilter;
 virLogDefineOutput;
+virLogDefineOutputs;
 virLogFilterFree;
 virLogFilterListFree;
 virLogFilterNew;
index df8b5bc22ae5ee6b8b7d8730979c2b590892224c..5543a11350608e45606ba598021e682637615871 100644 (file)
@@ -1681,3 +1681,28 @@ virLogFindOutput(virLogOutputPtr *outputs, size_t noutputs,
 
     return -1;
 }
+
+
+/**
+ * virLogDefineOutputs:
+ * @outputs: new set of outputs to be defined
+ * @noutputs: number of outputs in @outputs
+ *
+ * Resets any existing set of outputs and defines a completely new one.
+ *
+ * Returns number of outputs successfully defined or -1 in case of error;
+ */
+int
+virLogDefineOutputs(virLogOutputPtr *outputs, size_t noutputs)
+{
+    if (virLogInitialize() < 0)
+        return -1;
+
+    virLogLock();
+    virLogResetOutputs();
+    virLogOutputs = outputs;
+    virLogNbOutputs = noutputs;
+    virLogUnlock();
+
+    return 0;
+}
index 4e557f8d3842081e934b7ab0d4084d5b7259db65..3c4cd556e240e6c487de3806bb63a8443d72a766 100644 (file)
@@ -237,5 +237,7 @@ virLogFilterPtr virLogFilterNew(const char *match,
                                 unsigned int flags) ATTRIBUTE_NONNULL(1);
 int virLogFindOutput(virLogOutputPtr *outputs, size_t noutputs,
                      virLogDestination dest, const void *opaque);
+int virLogDefineOutputs(virLogOutputPtr *outputs,
+                        size_t noutputs) ATTRIBUTE_NONNULL(1);
 
 #endif