[network-manager-fortisslvpn/th/gtk-split-and-log-bgo771544: 19/25] service: replace g_log() by new logging macros
- From: Thomas Haller <thaller src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [network-manager-fortisslvpn/th/gtk-split-and-log-bgo771544: 19/25] service: replace g_log() by new logging macros
- Date: Fri, 16 Sep 2016 15:54:05 +0000 (UTC)
commit 8b41a3f88fc2eea302751ed18fc3d31675d060c8
Author: Thomas Haller <thaller redhat com>
Date: Fri Sep 16 16:14:49 2016 +0200
service: replace g_log() by new logging macros
Introduce new logging macros _LOGD(), _LOGI(), _LOGW() similar
like we have them in NetworkManager core and nm-openvpn.
They no longer use g_log() but g_print(). The reason is that
- g_log() adds a prefix that we don't want
- g_info() and g_debug() levels are disabled by g_log() unless
G_DEBUG_MESSAGES is set.
- g_warning() dumps core when run with G_DEBUG=fatal-warnings.
It seems more suited for assertion failures than regular logging.
Also, these logging macros honor a log_level setting.
src/nm-fortisslvpn-service.c | 68 +++++++++++++++++++++++++++++++----------
1 files changed, 51 insertions(+), 17 deletions(-)
---
diff --git a/src/nm-fortisslvpn-service.c b/src/nm-fortisslvpn-service.c
index 0ed278e..e05805c 100644
--- a/src/nm-fortisslvpn-service.c
+++ b/src/nm-fortisslvpn-service.c
@@ -41,6 +41,7 @@
#include "nm-ppp-status.h"
#include "nm-fortisslvpn-pppd-service-dbus.h"
+#include "nm-utils/nm-vpn-plugin-macros.h"
#if !defined(DIST_VERSION)
# define DIST_VERSION VERSION
@@ -48,6 +49,7 @@
static struct {
gboolean debug;
+ int log_level;
} gl/*obal*/;
/********************************************************/
@@ -79,6 +81,8 @@ typedef struct {
gboolean required;
} ValidProperty;
+/*****************************************************************************/
+
static ValidProperty valid_properties[] = {
{ NM_FORTISSLVPN_KEY_GATEWAY, G_TYPE_STRING, TRUE },
{ NM_FORTISSLVPN_KEY_USER, G_TYPE_STRING, TRUE },
@@ -95,6 +99,30 @@ static ValidProperty valid_secrets[] = {
{ NULL, G_TYPE_NONE, FALSE }
};
+/*****************************************************************************/
+
+#define _NMLOG(level, ...) \
+ G_STMT_START { \
+ if (gl.log_level >= (level)) { \
+ g_print ("nm-fortisslvpn[%ld] %-7s " _NM_UTILS_MACRO_FIRST (__VA_ARGS__) "\n", \
+ (long) getpid (), \
+ nm_utils_syslog_to_str (level) \
+ _NM_UTILS_MACRO_REST (__VA_ARGS__)); \
+ } \
+ } G_STMT_END
+
+static gboolean
+_LOGD_enabled (void)
+{
+ return gl.log_level >= LOG_INFO;
+}
+
+#define _LOGD(...) _NMLOG(LOG_INFO, __VA_ARGS__)
+#define _LOGI(...) _NMLOG(LOG_NOTICE, __VA_ARGS__)
+#define _LOGW(...) _NMLOG(LOG_WARNING, __VA_ARGS__)
+
+/*****************************************************************************/
+
static gboolean
validate_gateway (const char *gateway)
{
@@ -302,7 +330,7 @@ cleanup_plugin (NMFortisslvpnPlugin *plugin)
else
kill (priv->pid, SIGKILL);
- g_message ("Terminated ppp daemon with PID %d.", priv->pid);
+ _LOGI ("Terminated ppp daemon with PID %d.", priv->pid);
priv->pid = 0;
}
@@ -323,11 +351,11 @@ openfortivpn_watch_cb (GPid pid, gint status, gpointer user_data)
if (WIFEXITED (status))
error = WEXITSTATUS (status);
else if (WIFSTOPPED (status))
- g_warning ("openfortivpn stopped unexpectedly with signal %d", WSTOPSIG (status));
+ _LOGW ("openfortivpn stopped unexpectedly with signal %d", WSTOPSIG (status));
else if (WIFSIGNALED (status))
- g_warning ("openfortivpn died with signal %d", WTERMSIG (status));
+ _LOGW ("openfortivpn died with signal %d", WTERMSIG (status));
else
- g_warning ("openfortivpn died from an unknown cause");
+ _LOGW ("openfortivpn died from an unknown cause");
/* Reap child if needed. */
waitpid (priv->pid, NULL, WNOHANG);
@@ -368,7 +396,7 @@ pppd_timed_out (gpointer user_data)
{
NMFortisslvpnPlugin *plugin = NM_FORTISSLVPN_PLUGIN (user_data);
- g_warning ("Looks like pppd didn't initialize our dbus module");
+ _LOGW ("Looks like pppd didn't initialize our dbus module");
nm_vpn_service_plugin_failure (NM_VPN_SERVICE_PLUGIN (plugin), NM_VPN_PLUGIN_FAILURE_CONNECT_FAILED);
return FALSE;
@@ -405,7 +433,7 @@ run_openfortivpn (NMFortisslvpnPlugin *plugin, NMSettingVpn *s_vpn, GError **err
value = nm_setting_vpn_get_data_item (s_vpn, NM_FORTISSLVPN_KEY_GATEWAY);
g_ptr_array_add (argv, (gpointer) g_strdup (value));
- if (gl.debug)
+ if (_LOGD_enabled ())
g_ptr_array_add (argv, (gpointer) g_strdup ("-vvv"));
value = nm_setting_vpn_get_data_item (s_vpn, NM_FORTISSLVPN_KEY_CA);
@@ -444,7 +472,7 @@ run_openfortivpn (NMFortisslvpnPlugin *plugin, NMSettingVpn *s_vpn, GError **err
}
g_ptr_array_free (argv, TRUE);
- g_message ("openfortivpn started with pid %d", pid);
+ _LOGI ("openfortivpn started with pid %d", pid);
priv->pid = pid;
g_child_watch_add (pid, openfortivpn_watch_cb, plugin);
@@ -485,7 +513,7 @@ handle_set_ip4_config (NMDBusFortisslvpnPpp *object,
GVariant *arg_config,
gpointer user_data)
{
- g_message ("FORTISSLVPN service (IP Config Get) reply received.");
+ _LOGI ("FORTISSLVPN service (IP Config Get) reply received.");
remove_timeout_handler (NM_FORTISSLVPN_PLUGIN (user_data));
nm_vpn_service_plugin_set_ip4_config (NM_VPN_SERVICE_PLUGIN (user_data), arg_config);
@@ -551,8 +579,10 @@ real_connect (NMVpnServicePlugin *plugin, NMConnection *connection, GError **err
g_clear_object (&priv->connection);
priv->connection = g_object_ref (connection);
- if (gl.debug)
+ if (_LOGD_enabled ()) {
+ _LOGD ("connection:");
nm_connection_dump (connection);
+ }
/* Create the configuration file so that we don't expose
* secrets on the command line */
@@ -726,7 +756,7 @@ nm_fortisslvpn_plugin_new (const char *bus_name)
NM_VPN_SERVICE_PLUGIN_DBUS_WATCH_PEER, !gl.debug,
NULL);
if (!plugin) {
- g_warning ("Failed to initialize a plugin instance: %s", error->message);
+ _LOGW ("Failed to initialize a plugin instance: %s", error->message);
g_error_free (error);
}
@@ -746,13 +776,14 @@ main (int argc, char *argv[])
GMainLoop *main_loop;
gboolean persist = FALSE;
GOptionContext *opt_ctx = NULL;
- gchar *bus_name = NM_DBUS_SERVICE_FORTISSLVPN;
+ gs_free char *bus_name_free = NULL;
+ const char *bus_name;
GError *error = NULL;
GOptionEntry options[] = {
{ "persist", 0, 0, G_OPTION_ARG_NONE, &persist, N_("Don't quit when VPN connection
terminates"), NULL },
{ "debug", 0, 0, G_OPTION_ARG_NONE, &gl.debug, N_("Enable verbose debug logging (may expose
passwords)"), NULL },
- { "bus-name", 0, 0, G_OPTION_ARG_STRING, &bus_name, N_("D-Bus name to use for this
instance"), NULL },
+ { "bus-name", 0, 0, G_OPTION_ARG_STRING, &bus_name_free, N_("D-Bus name to use for this
instance"), NULL },
{NULL}
};
@@ -776,21 +807,24 @@ main (int argc, char *argv[])
_("nm-fortisslvpn-service provides integrated SSLVPN capability (compatible with Fortinet) to
NetworkManager."));
if (!g_option_context_parse (opt_ctx, &argc, &argv, &error)) {
- g_warning ("Error parsing the command line options: %s", error->message);
+ g_printerr ("Error parsing the command line options: %s\n", error->message);
g_option_context_free (opt_ctx);
g_error_free (error);
return EXIT_FAILURE;
}
g_option_context_free (opt_ctx);
+ bus_name = bus_name_free ?: NM_DBUS_SERVICE_FORTISSLVPN;
+
if (getenv ("NM_PPP_DEBUG"))
gl.debug = TRUE;
- if (gl.debug)
- g_message ("nm-fortisslvpn-service (version " DIST_VERSION ") starting...");
+ gl.log_level = gl.debug ? LOG_INFO : LOG_NOTICE;
+
+ _LOGD ("nm-fortisslvpn-service (version " DIST_VERSION ") starting...");
+ _LOGD (" uses%s --bus-name \"%s\"", bus_name_free ? "" : " default", bus_name);
- if (bus_name)
- setenv ("NM_DBUS_SERVICE_FORTISSLVPN", bus_name, 0);
+ setenv ("NM_DBUS_SERVICE_FORTISSLVPN", bus_name, 0);
plugin = nm_fortisslvpn_plugin_new (bus_name);
if (!plugin)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]