From c33babfe31f6c1e8224eb619b936d6d921778e0e Mon Sep 17 00:00:00 2001 From: Erik Skultety Date: Thu, 24 Mar 2016 14:34:11 +0100 Subject: [PATCH] virlog: Introduce virLogSetFilters This method will eventually replace virLogParseAndDefineFilters which currently does both parsing and defining. Signed-off-by: Erik Skultety --- src/libvirt_private.syms | 1 + src/util/virlog.c | 32 ++++++++++++++++++++++++++++++++ src/util/virlog.h | 1 + 3 files changed, 34 insertions(+) diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 77fda3cab7..342e78655d 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -1898,6 +1898,7 @@ virLogPriorityFromSyslog; virLogProbablyLogMessage; virLogReset; virLogSetDefaultPriority; +virLogSetFilters; virLogSetFromEnv; virLogSetOutputs; virLogUnlock; diff --git a/src/util/virlog.c b/src/util/virlog.c index 377a7c1c62..0444155bba 100644 --- a/src/util/virlog.c +++ b/src/util/virlog.c @@ -2180,3 +2180,35 @@ virLogSetOutputs(const char *src) virLogOutputListFree(outputs, noutputs); return ret; } + + +/** + * virLogSetFilters: + * @src: string defining a (set of) filter(s) + * + * Replaces the current set of defined filters with a new set of filters. + * + * Returns 0 on success or -1 in case of an error. + */ +int +virLogSetFilters(const char *src) +{ + int ret = -1; + int nfilters = 0; + virLogFilterPtr *filters = NULL; + + if (virLogInitialize() < 0) + return -1; + + if (src && (nfilters = virLogParseFilters(src, &filters)) < 0) + goto cleanup; + + if (virLogDefineFilters(filters, nfilters) < 0) + goto cleanup; + + filters = NULL; + ret = 0; + cleanup: + virLogFilterListFree(filters, nfilters); + return ret; +} diff --git a/src/util/virlog.h b/src/util/virlog.h index f3b8f8b63f..58a392b2c0 100644 --- a/src/util/virlog.h +++ b/src/util/virlog.h @@ -198,6 +198,7 @@ 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 virLogSetFilters(const char *filters); /* * Internal logging API