diff options
author | Dan Williams <dcbw@redhat.com> | 2010-04-08 08:56:17 -0700 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2010-04-08 08:56:17 -0700 |
commit | 02002ef9d15ead885eccc46c278e6aa11a778f87 (patch) | |
tree | bea9b77ba31b951627fd78ce1b1ae019b06b86a3 /src/logging | |
parent | 7fa8f29aaf8767631fb546e4fa3731e4a1a71586 (diff) | |
download | NetworkManager-02002ef9d15ead885eccc46c278e6aa11a778f87.tar.gz |
logging: add D-Bus method to change logging
Diffstat (limited to 'src/logging')
-rw-r--r-- | src/logging/nm-logging.c | 45 | ||||
-rw-r--r-- | src/logging/nm-logging.h | 7 |
2 files changed, 49 insertions, 3 deletions
diff --git a/src/logging/nm-logging.c b/src/logging/nm-logging.c index 446c7a4179..3e3efa4760 100644 --- a/src/logging/nm-logging.c +++ b/src/logging/nm-logging.c @@ -85,6 +85,40 @@ static const LogDesc domain_descs[] = { { 0, NULL } }; +/************************************************************************/ + +enum { + NM_LOGGING_ERROR_UNKNOWN_LEVEL = 0, + NM_LOGGING_ERROR_UNKNOWN_DOMAIN = 1, +}; + +#define ENUM_ENTRY(NAME, DESC) { NAME, "" #NAME "", DESC } + +GQuark +nm_logging_error_quark (void) +{ + static GQuark ret = 0; + + if (ret == 0) + ret = g_quark_from_static_string ("nm_logging_error"); + return ret; +} + +GType +nm_logging_error_get_type (void) +{ + static GType etype = 0; + + if (etype == 0) { + static const GEnumValue values[] = { + ENUM_ENTRY (NM_LOGGING_ERROR_UNKNOWN_LEVEL, "UnknownLevel"), + ENUM_ENTRY (NM_LOGGING_ERROR_UNKNOWN_DOMAIN, "UnknownDomain"), + { 0, 0, 0 } + }; + etype = g_enum_register_static ("NMLoggingError", values); + } + return etype; +} /************************************************************************/ @@ -108,18 +142,22 @@ nm_logging_setup (const char *level, const char *domains, GError **error) } if (!found) { - g_set_error (error, 0, 0, _("Unknown log level '%s'"), level); + g_set_error (error, NM_LOGGING_ERROR, NM_LOGGING_ERROR_UNKNOWN_LEVEL, + _("Unknown log level '%s'"), level); return FALSE; } } /* domains */ if (domains && strlen (domains)) { - tmp = g_strsplit (domains, ",", 0); + tmp = g_strsplit_set (domains, ", ", 0); for (iter = tmp; iter && *iter; iter++) { const LogDesc *diter; gboolean found = FALSE; + if (!strlen (*iter)) + continue; + for (diter = &domain_descs[0]; diter->name; diter++) { if (!strcasecmp (diter->name, *iter)) { new_domains |= diter->num; @@ -129,7 +167,8 @@ nm_logging_setup (const char *level, const char *domains, GError **error) } if (!found) { - g_set_error (error, 0, 0, _("Unknown log domain '%s'"), *iter); + g_set_error (error, NM_LOGGING_ERROR, NM_LOGGING_ERROR_UNKNOWN_DOMAIN, + _("Unknown log domain '%s'"), *iter); return FALSE; } } diff --git a/src/logging/nm-logging.h b/src/logging/nm-logging.h index ba15268c34..4c381a24a3 100644 --- a/src/logging/nm-logging.h +++ b/src/logging/nm-logging.h @@ -23,6 +23,7 @@ #define NM_LOGGING_H #include <glib.h> +#include <glib-object.h> /* Log domains */ enum { @@ -62,6 +63,12 @@ enum { LOGL_DEBUG = 0x00000004 }; +#define NM_LOGGING_ERROR (nm_logging_error_quark ()) +#define NM_TYPE_LOGGING_ERROR (nm_logging_error_get_type ()) +GQuark nm_logging_error_quark (void); +GType nm_logging_error_get_type (void); + + #define nm_log_err(domain, fmt, args...) \ { _nm_log (G_STRLOC, G_STRFUNC, domain, LOGL_ERR, fmt, ##args); } |