]> xenbits.xensource.com Git - libvirt.git/commitdiff
admin: Allow passing NULL to virLogSetOutputs
authorErik Skultety <eskultet@redhat.com>
Fri, 25 Nov 2016 10:50:51 +0000 (11:50 +0100)
committerErik Skultety <eskultet@redhat.com>
Thu, 15 Dec 2016 09:36:23 +0000 (10:36 +0100)
Along with an empty string, it should also be possible for users to pass
NULL to the public APIs which in turn would trigger a routine(future
work) responsible for defining an appropriate default logging output
given the current circumstances.

Signed-off-by: Erik Skultety <eskultet@redhat.com>
daemon/libvirtd.c
src/locking/lock_daemon.c
src/logging/log_daemon.c
src/util/virlog.c
src/util/virlog.h

index cd25b508e391774eb2a1c87f81d270654f0c32b0..3902a8bd18c17c5b0bcad29272bd590dcbcdb37a 100644 (file)
@@ -693,7 +693,7 @@ daemonSetupLogging(struct daemonConfig *config,
     if (virLogGetNbFilters() == 0)
         virLogSetFilters(config->log_filters);
 
-    if (config->log_outputs && virLogGetNbOutputs() == 0)
+    if (virLogGetNbOutputs() == 0)
         virLogSetOutputs(config->log_outputs);
 
     /*
index 02745be65212f7ea224ce3c517130f249f4f5f0d..9ee818e93e25b9976a221fa08d10673a60906020 100644 (file)
@@ -478,7 +478,7 @@ virLockDaemonSetupLogging(virLockDaemonConfigPtr config,
     if (virLogGetNbFilters() == 0)
         virLogSetFilters(config->log_filters);
 
-    if (config->log_outputs && virLogGetNbOutputs() == 0)
+    if (virLogGetNbOutputs() == 0)
         virLogSetOutputs(config->log_outputs);
 
     /*
index 04bb83616d1a84a35885c298aab4ebf00d47d404..a9aebdb6d7dd5c531b5bfda34af654e4964e2a87 100644 (file)
@@ -406,7 +406,7 @@ virLogDaemonSetupLogging(virLogDaemonConfigPtr config,
     if (virLogGetNbFilters() == 0)
         virLogSetFilters(config->log_filters);
 
-    if (config->log_outputs && virLogGetNbOutputs() == 0)
+    if (virLogGetNbOutputs() == 0)
         virLogSetOutputs(config->log_outputs);
 
     /*
index a13b471a6371742079dd9481cd656a9e684b83a1..7b584f8e37a58af6c23550f8cc7a3b3043c925bf 100644 (file)
@@ -1818,6 +1818,8 @@ virLogParseFilters(const char *src, virLogFilterPtr **filters)
  * @outputs: string defining a (set of) output(s)
  *
  * Replaces the current set of defined outputs with a new set of outputs.
+ * Should the set be empty or NULL, a default output is used according to the
+ * daemon's runtime attributes.
  *
  * Returns 0 on success or -1 in case of an error.
  */
@@ -1826,12 +1828,16 @@ virLogSetOutputs(const char *src)
 {
     int ret = -1;
     int noutputs = 0;
+    const char *outputstr = virLogDefaultOutput;
     virLogOutputPtr *outputs = NULL;
 
     if (virLogInitialize() < 0)
         return -1;
 
-    if ((noutputs = virLogParseOutputs(src, &outputs)) < 0)
+    if (src && *src)
+        outputstr = src;
+
+    if ((noutputs = virLogParseOutputs(outputstr, &outputs)) < 0)
         goto cleanup;
 
     if (virLogDefineOutputs(outputs, noutputs) < 0)
index b4ffecafb2cd8d1c735eff4f546a7ec68e51553d..cc09f484afe95c9f0880333f8c6307da04d43114 100644 (file)
@@ -187,7 +187,7 @@ void virLogOutputFree(virLogOutputPtr output);
 void virLogOutputListFree(virLogOutputPtr *list, int count);
 void virLogFilterFree(virLogFilterPtr filter);
 void virLogFilterListFree(virLogFilterPtr *list, int count);
-int virLogSetOutputs(const char *outputs) ATTRIBUTE_NONNULL(1);
+int virLogSetOutputs(const char *outputs);
 int virLogSetFilters(const char *filters);
 char *virLogGetDefaultOutput(void);
 int virLogSetDefaultOutput(const char *fname, bool godaemon, bool privileged);