admin: Allow passing NULL to virLogSetOutputs

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>
This commit is contained in:
Erik Skultety 2016-11-25 11:50:51 +01:00
parent ae06048bf5
commit 0d6cf32721
5 changed files with 11 additions and 5 deletions

View 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);
/*

View 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);
/*

View 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);
/*

View 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)

View 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);