aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2011-01-23 20:51:48 -0600
committerDan Williams <dcbw@redhat.com>2011-01-23 20:51:48 -0600
commit16039244bb08cb4f62754c710be2052eaef32549 (patch)
tree689477732fdaf58c7e5b9f1774cd68519dcd896b
parentf85b014d843ecb2259e9b2e21f44c24ff8ff5fdf (diff)
core: rework logging
Make it more flexible, add logging to a file, and absolute and relative timestamps.
-rw-r--r--plugins/mm-modem-anydata-cdma.c9
-rw-r--r--plugins/mm-modem-huawei-cdma.c7
-rw-r--r--plugins/mm-modem-huawei-gsm.c17
-rw-r--r--plugins/mm-modem-icera.c5
-rw-r--r--plugins/mm-modem-mbm.c17
-rw-r--r--plugins/mm-plugin-generic.c9
-rw-r--r--plugins/mm-plugin-huawei.c9
-rw-r--r--plugins/mm-plugin-mbm.c2
-rw-r--r--src/Makefile.am4
-rw-r--r--src/main.c118
-rw-r--r--src/mm-at-serial-port.c10
-rw-r--r--src/mm-generic-cdma.c7
-rw-r--r--src/mm-generic-gsm.c86
-rw-r--r--src/mm-log.c227
-rw-r--r--src/mm-log.h61
-rw-r--r--src/mm-manager.c82
-rw-r--r--src/mm-modem-base.c35
-rw-r--r--src/mm-modem-helpers.c26
-rw-r--r--src/mm-modem-helpers.h3
-rw-r--r--src/mm-modem.c22
-rw-r--r--src/mm-options.c55
-rw-r--r--src/mm-options.h23
-rw-r--r--src/mm-plugin-base.c7
-rw-r--r--src/mm-port.c16
-rw-r--r--src/mm-properties-changed-signal.c9
-rw-r--r--src/mm-qcdm-serial-port.c10
-rw-r--r--src/mm-serial-parsers.c5
-rw-r--r--src/mm-serial-port.c50
-rw-r--r--src/tests/test-modem-helpers.c13
-rw-r--r--src/tests/test-qcdm-serial-port.c11
30 files changed, 539 insertions, 416 deletions
diff --git a/plugins/mm-modem-anydata-cdma.c b/plugins/mm-modem-anydata-cdma.c
index 02454b00..0e7e65c5 100644
--- a/plugins/mm-modem-anydata-cdma.c
+++ b/plugins/mm-modem-anydata-cdma.c
@@ -28,6 +28,7 @@
#include "mm-callback-info.h"
#include "mm-serial-port.h"
#include "mm-serial-parsers.h"
+#include "mm-log.h"
static void modem_init (MMModem *modem_class);
@@ -140,7 +141,7 @@ evdo_state_done (MMAtSerialPort *port,
G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
if (!r) {
/* Parse error; warn about it and assume EVDO is not available */
- g_warning ("AnyDATA(%s): *HSTATE parse regex creation failed.", __func__);
+ mm_warn ("ANYDATA: *HSTATE parse regex creation failed.");
goto done;
}
@@ -167,7 +168,7 @@ evdo_state_done (MMAtSerialPort *port,
reg_state = MM_MODEM_CDMA_REGISTRATION_STATE_REGISTERED;
break;
default:
- g_message ("ANYDATA: unknown *STATE (%d); assuming no service.", val);
+ mm_warn ("ANYDATA: unknown *STATE (%d); assuming no service.", val);
/* fall through */
case 0: /* NO SERVICE */
case 1: /* ACQUISITION */
@@ -206,7 +207,7 @@ state_done (MMAtSerialPort *port,
r = g_regex_new ("\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*([^,\\)]*)\\s*,.*",
G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
if (!r) {
- g_warning ("AnyDATA(%s): *STATE parse regex creation failed.", __func__);
+ mm_warn ("ANYDATA: *STATE parse regex creation failed.");
mm_callback_info_schedule (info);
return;
}
@@ -235,7 +236,7 @@ state_done (MMAtSerialPort *port,
reg_state = MM_MODEM_CDMA_REGISTRATION_STATE_REGISTERED;
break;
default:
- g_warning ("ANYDATA: unknown *STATE (%d); assuming no service.", val);
+ mm_warn ("ANYDATA: unknown *STATE (%d); assuming no service.", val);
/* fall through */
case 0: /* NO SERVICE */
break;
diff --git a/plugins/mm-modem-huawei-cdma.c b/plugins/mm-modem-huawei-cdma.c
index 7faa9f08..3aec470b 100644
--- a/plugins/mm-modem-huawei-cdma.c
+++ b/plugins/mm-modem-huawei-cdma.c
@@ -27,6 +27,7 @@
#include "mm-callback-info.h"
#include "mm-serial-port.h"
#include "mm-serial-parsers.h"
+#include "mm-log.h"
static void modem_init (MMModem *modem_class);
@@ -79,7 +80,7 @@ parse_quality (const char *str, const char *detail)
quality = strtol (str, NULL, 10);
if (errno == 0) {
quality = CLAMP (quality, 0, 100);
- g_debug ("%s: %ld", detail, quality);
+ mm_dbg ("%s: %ld", detail, quality);
return (gint) quality;
}
return -1;
@@ -177,7 +178,7 @@ sysinfo_done (MMAtSerialPort *port,
r = g_regex_new ("\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)",
G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
if (!r) {
- g_warning ("Huawei(%s): ^SYSINFO parse regex creation failed.", __func__);
+ mm_warn ("Huawei: ^SYSINFO parse regex creation failed.");
goto done;
}
@@ -218,7 +219,7 @@ sysinfo_done (MMAtSerialPort *port,
mm_generic_cdma_query_reg_state_set_callback_1x_state (info, reg_state);
}
} else
- g_warning ("Huawei(%s): failed to parse ^SYSINFO response.", __func__);
+ mm_warn ("Huawei: failed to parse ^SYSINFO response.");
g_match_info_free (match_info);
g_regex_unref (r);
diff --git a/plugins/mm-modem-huawei-gsm.c b/plugins/mm-modem-huawei-gsm.c
index 9d8d16da..3fc9ae26 100644
--- a/plugins/mm-modem-huawei-gsm.c
+++ b/plugins/mm-modem-huawei-gsm.c
@@ -29,7 +29,7 @@
#include "mm-callback-info.h"
#include "mm-at-serial-port.h"
#include "mm-serial-parsers.h"
-#include "mm-options.h"
+#include "mm-log.h"
static void modem_init (MMModem *modem_class);
static void modem_gsm_network_init (MMModemGsmNetwork *gsm_network_class);
@@ -534,7 +534,7 @@ send_huawei_cpin_done (MMAtSerialPort *port,
else if (strstr (pin_type, MM_MODEM_GSM_CARD_SIM_PIN2))
num = 5;
else {
- g_debug ("%s: unhandled pin type '%s'", __func__, pin_type);
+ mm_dbg ("unhandled pin type '%s'", pin_type);
info->error = g_error_new_literal (MM_MODEM_ERROR, MM_MODEM_ERROR_GENERAL, "Unhandled PIN type");
}
@@ -576,7 +576,7 @@ get_unlock_retries (MMModemGsmCard *modem,
char *command;
MMCallbackInfo *info = mm_callback_info_uint_new (MM_MODEM (modem), callback, user_data);
- g_debug ("%s: pin type '%s'", __func__, pin_type);
+ mm_dbg ("pin type '%s'", pin_type);
/* Ensure we have a usable port to use for the command */
port = mm_generic_gsm_get_best_at_port (MM_GENERIC_GSM (modem), &info->error);
@@ -660,12 +660,11 @@ handle_mode_change (MMAtSerialPort *port,
} else if (a == 0)
act = MM_MODEM_GSM_ACCESS_TECH_UNKNOWN;
else {
- g_warning ("Couldn't parse mode change value: '%s'", str);
+ mm_warn ("Couldn't parse mode change value: '%s'", str);
return;
}
- if (mm_options_debug ())
- g_debug ("Access Technology: %d", act);
+ mm_dbg ("Access Technology: %d", act);
mm_generic_gsm_update_access_technology (MM_GENERIC_GSM (self), act);
}
@@ -680,10 +679,8 @@ handle_status_change (MMAtSerialPort *port,
str = g_match_info_fetch (match_info, 1);
if (sscanf (str, "%x,%x,%x,%x,%x,%x,%x", &n1, &n2, &n3, &n4, &n5, &n6, &n7)) {
- if (mm_options_debug ()) {
- g_debug ("Duration: %d Up: %d Kbps Down: %d Kbps Total: %d Total: %d\n",
- n1, n2 * 8 / 1000, n3 * 8 / 1000, n4 / 1024, n5 / 1024);
- }
+ mm_dbg ("Duration: %d Up: %d Kbps Down: %d Kbps Total: %d Total: %d\n",
+ n1, n2 * 8 / 1000, n3 * 8 / 1000, n4 / 1024, n5 / 1024);
}
g_free (str);
}
diff --git a/plugins/mm-modem-icera.c b/plugins/mm-modem-icera.c
index 9e60f6f9..3f71c5b6 100644
--- a/plugins/mm-modem-icera.c
+++ b/plugins/mm-modem-icera.c
@@ -32,6 +32,7 @@
#include "mm-at-serial-port.h"
#include "mm-generic-gsm.h"
#include "mm-modem-helpers.h"
+#include "mm-log.h"
struct _MMModemIceraPrivate {
/* Pending connection attempt */
@@ -325,7 +326,7 @@ icera_disconnect_done (MMModem *modem,
GError *error,
gpointer user_data)
{
- g_message ("Modem signaled disconnection from the network");
+ mm_info ("Modem signaled disconnection from the network");
}
static void
@@ -380,7 +381,7 @@ connection_enabled (MMAtSerialPort *port,
connect_pending_done (self);
break;
default:
- g_warning ("Unknown Icera connect status %d", status);
+ mm_warn ("Unknown Icera connect status %d", status);
break;
}
}
diff --git a/plugins/mm-modem-mbm.c b/plugins/mm-modem-mbm.c
index 554ebc27..93034537 100644
--- a/plugins/mm-modem-mbm.c
+++ b/plugins/mm-modem-mbm.c
@@ -1,7 +1,7 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* Copyright (C) 2008 - 2010 Ericsson AB
- * Copyright (C) 2009 - 2010 Red Hat, Inc.
+ * Copyright (C) 2009 - 2011 Red Hat, Inc.
*
* Author: Per Hallsmark <per.hallsmark@ericsson.com>
* Bjorn Runaker <bjorn.runaker@ericsson.com>
@@ -31,6 +31,7 @@
#include "mm-modem-gsm-card.h"
#include "mm-errors.h"
#include "mm-callback-info.h"
+#include "mm-log.h"
static void modem_init (MMModem *modem_class);
static void modem_gsm_network_init (MMModemGsmNetwork *gsm_network_class);
@@ -410,7 +411,7 @@ mbm_emrdy_done (MMAtSerialPort *port,
MMModemMbmPrivate *priv = MM_MODEM_MBM_GET_PRIVATE (info->modem);
if (g_error_matches (error, MM_SERIAL_ERROR, MM_SERIAL_ERROR_RESPONSE_TIMEOUT))
- g_warning ("%s: timed out waiting for EMRDY response.", __func__);
+ mm_warn ("timed out waiting for EMRDY response.");
else
priv->have_emrdy = TRUE;
@@ -632,16 +633,16 @@ mbm_e2nap_received (MMAtSerialPort *port,
g_free (str);
if (MBM_E2NAP_DISCONNECTED == state) {
- g_debug ("%s: disconnected", __func__);
+ mm_dbg ("disconnected");
mbm_do_connect_done (MM_MODEM_MBM (user_data), FALSE);
} else if (MBM_E2NAP_CONNECTED == state) {
- g_debug ("%s: connected", __func__);
+ mm_dbg ("connected");
mbm_do_connect_done (MM_MODEM_MBM (user_data), TRUE);
} else if (MBM_E2NAP_CONNECTING == state)
- g_debug("%s: connecting", __func__);
+ mm_dbg ("connecting");
else {
/* Should not happen */
- g_debug("%s: unhandled E2NAP state %d", __func__, state);
+ mm_dbg ("unhandled E2NAP state %d", state);
mbm_do_connect_done (MM_MODEM_MBM (user_data), FALSE);
}
}
@@ -811,7 +812,7 @@ send_epin_done (MMAtSerialPort *port,
else if (strstr (pin_type, MM_MODEM_GSM_CARD_SIM_PUK2))
sscanf (response->str, "*EPIN: %*d, %*d, %*d, %d", &attempts_left);
else {
- g_debug ("%s: unhandled pin type '%s'", __func__, pin_type);
+ mm_dbg ("unhandled pin type '%s'", pin_type);
info->error = g_error_new_literal (MM_MODEM_ERROR, MM_MODEM_ERROR_GENERAL, "Unhandled PIN type");
}
@@ -838,7 +839,7 @@ mbm_get_unlock_retries (MMModemGsmCard *modem,
char *command;
MMCallbackInfo *info = mm_callback_info_uint_new (MM_MODEM (modem), callback, user_data);
- g_debug ("%s: pin type '%s'", __func__, pin_type);
+ mm_dbg ("pin type '%s'", pin_type);
/* Ensure we have a usable port to use for the command */
port = mm_generic_gsm_get_best_at_port (MM_GENERIC_GSM (modem), &info->error);
diff --git a/plugins/mm-plugin-generic.c b/plugins/mm-plugin-generic.c
index 9704ae84..a27704b4 100644
--- a/plugins/mm-plugin-generic.c
+++ b/plugins/mm-plugin-generic.c
@@ -31,6 +31,7 @@
#include "mm-generic-cdma.h"
#include "mm-errors.h"
#include "mm-serial-parsers.h"
+#include "mm-log.h"
G_DEFINE_TYPE (MMPluginGeneric, mm_plugin_generic, MM_TYPE_PLUGIN_BASE)
@@ -127,10 +128,10 @@ grab_port (MMPluginBase *base,
g_set_error (error, 0, 0, "Could not get port's sysfs file.");
return NULL;
} else {
- g_message ("%s: (%s/%s) WARNING: missing udev 'device' file",
- mm_plugin_get_name (MM_PLUGIN (base)),
- subsys,
- name);
+ mm_warn ("%s: (%s/%s) WARNING: missing udev 'device' file",
+ mm_plugin_get_name (MM_PLUGIN (base)),
+ subsys,
+ name);
}
}
diff --git a/plugins/mm-plugin-huawei.c b/plugins/mm-plugin-huawei.c
index 090bb0d5..f1590ca3 100644
--- a/plugins/mm-plugin-huawei.c
+++ b/plugins/mm-plugin-huawei.c
@@ -27,6 +27,7 @@
#include "mm-modem-huawei-cdma.h"
#include "mm-serial-parsers.h"
#include "mm-at-serial-port.h"
+#include "mm-log.h"
G_DEFINE_TYPE (MMPluginHuawei, mm_plugin_huawei, MM_TYPE_PLUGIN_BASE)
@@ -240,10 +241,10 @@ supports_port (MMPluginBase *base,
info->id = g_timeout_add_seconds (7, probe_secondary_timeout, task);
if (!mm_serial_port_open (MM_SERIAL_PORT (info->serial), &error)) {
- g_warning ("%s: (Huawei) %s: couldn't open serial port: (%d) %s",
- __func__, name,
- error ? error->code : -1,
- error && error->message ? error->message : "(unknown)");
+ mm_warn ("(Huawei) %s: couldn't open serial port: (%d) %s",
+ name,
+ error ? error->code : -1,
+ error && error->message ? error->message : "(unknown)");
g_clear_error (&error);
huawei_supports_info_destroy (info);
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
diff --git a/plugins/mm-plugin-mbm.c b/plugins/mm-plugin-mbm.c
index dd64cc66..6684ff9a 100644
--- a/plugins/mm-plugin-mbm.c
+++ b/plugins/mm-plugin-mbm.c
@@ -84,7 +84,7 @@ supports_port (MMPluginBase *base,
client = g_udev_client_new (sys);
if (!client) {
- g_warning ("mbm: could not get udev client.");
+ g_warn_if_fail (client != NULL);
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
}
diff --git a/src/Makefile.am b/src/Makefile.am
index 3e656d81..e813e7e8 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -81,6 +81,8 @@ endif
modem_manager_SOURCES = \
main.c \
+ mm-log.c \
+ mm-log.h \
mm-callback-info.c \
mm-callback-info.h \
$(auth_sources) \
@@ -109,8 +111,6 @@ modem_manager_SOURCES = \
mm-modem-gsm-ussd.h \
mm-modem-simple.c \
mm-modem-simple.h \
- mm-options.c \
- mm-options.h \
mm-plugin.c \
mm-plugin.h \
mm-plugin-base.c \
diff --git a/src/main.c b/src/main.c
index 2b4da21d..cf3bff44 100644
--- a/src/main.c
+++ b/src/main.c
@@ -11,7 +11,7 @@
* GNU General Public License for more details:
*
* Copyright (C) 2008 - 2009 Novell, Inc.
- * Copyright (C) 2009 - 2010 Red Hat, Inc.
+ * Copyright (C) 2009 - 2011 Red Hat, Inc.
*/
#include <config.h>
@@ -21,8 +21,10 @@
#include <unistd.h>
#include <dbus/dbus-glib.h>
#include <dbus/dbus-glib-lowlevel.h>
+#include <stdlib.h>
+
#include "mm-manager.h"
-#include "mm-options.h"
+#include "mm-log.h"
#if !defined(MM_DIST_VERSION)
# define MM_DIST_VERSION VERSION
@@ -34,9 +36,9 @@ static void
mm_signal_handler (int signo)
{
if (signo == SIGUSR1)
- mm_options_set_debug (!mm_options_debug ());
+ mm_log_usr1 ();
else if (signo == SIGINT || signo == SIGTERM) {
- g_message ("Caught signal %d, shutting down...", signo);
+ mm_info ("Caught signal %d, shutting down...", signo);
if (loop)
g_main_loop_quit (loop);
else
@@ -60,64 +62,9 @@ setup_signals (void)
}
static void
-log_handler (const gchar *log_domain,
- GLogLevelFlags log_level,
- const gchar *message,
- gpointer ignored)
-{
- int syslog_priority;
-
- switch (log_level) {
- case G_LOG_LEVEL_ERROR:
- syslog_priority = LOG_CRIT;
- break;
-
- case G_LOG_LEVEL_CRITICAL:
- syslog_priority = LOG_ERR;
- break;
-
- case G_LOG_LEVEL_WARNING:
- syslog_priority = LOG_WARNING;
- break;
-
- case G_LOG_LEVEL_MESSAGE:
- syslog_priority = LOG_NOTICE;
- break;
-
- case G_LOG_LEVEL_DEBUG:
- syslog_priority = LOG_DEBUG;
- break;
-
- case G_LOG_LEVEL_INFO:
- default:
- syslog_priority = LOG_INFO;
- break;
- }
-
- syslog (syslog_priority, "%s", message);
-}
-
-
-static void
-logging_setup (void)
-{
- openlog (G_LOG_DOMAIN, LOG_CONS, LOG_DAEMON);
- g_log_set_handler (G_LOG_DOMAIN,
- G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
- log_handler,
- NULL);
-}
-
-static void
-logging_shutdown (void)
-{
- closelog ();
-}
-
-static void
destroy_cb (DBusGProxy *proxy, gpointer user_data)
{
- g_message ("disconnected from the system bus, exiting.");
+ mm_warn ("disconnected from the system bus, exiting.");
g_main_loop_quit (loop);
}
@@ -139,16 +86,16 @@ create_dbus_proxy (DBusGConnection *bus)
G_TYPE_INVALID,
G_TYPE_UINT, &request_name_result,
G_TYPE_INVALID)) {
- g_warning ("Could not acquire the %s service.\n"
- " Message: '%s'", MM_DBUS_SERVICE, err->message);
+ mm_warn ("Could not acquire the %s service.\n"
+ " Message: '%s'", MM_DBUS_SERVICE, err->message);
g_error_free (err);
g_object_unref (proxy);
proxy = NULL;
} else if (request_name_result != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER) {
- g_warning ("Could not acquire the " MM_DBUS_SERVICE
- " service as it is already taken. Return: %d",
- request_name_result);
+ mm_warn ("Could not acquire the " MM_DBUS_SERVICE
+ " service as it is already taken. Return: %d",
+ request_name_result);
g_object_unref (proxy);
proxy = NULL;
@@ -175,17 +122,46 @@ main (int argc, char *argv[])
DBusGProxy *proxy;
MMManager *manager;
GError *err = NULL;
+ GOptionContext *opt_ctx;
guint id;
+ const char *log_level = NULL, *log_file = NULL;
+ gboolean debug = FALSE, show_ts = FALSE, rel_ts = FALSE;
+
+ GOptionEntry entries[] = {
+ { "debug", 0, 0, G_OPTION_ARG_NONE, &debug, "Output to console rather than syslog", NULL },
+ { "log-level", 0, 0, G_OPTION_ARG_STRING, &log_level, "Log level: one of [ERR, WARN, INFO, DEBUG]", "INFO" },
+ { "log-file", 0, 0, G_OPTION_ARG_STRING, &log_file, "Path to log file", NULL },
+ { "timestamps", 0, 0, G_OPTION_ARG_NONE, &show_ts, "Show timestamps in log output", NULL },
+ { "relative-timestamps", 0, 0, G_OPTION_ARG_NONE, &rel_ts, "Use relative timestamps (from MM start)", NULL },
+ { NULL }
+ };
- mm_options_parse (argc, argv);
g_type_init ();
- setup_signals ();
+ opt_ctx = g_option_context_new (NULL);
+ g_option_context_set_summary (opt_ctx, "DBus system service to communicate with modems.");
+ g_option_context_add_main_entries (opt_ctx, entries, NULL);
- if (!mm_options_debug ())
- logging_setup ();
+ if (!g_option_context_parse (opt_ctx, &argc, &argv, &err)) {
+ g_warning ("%s\n", err->message);
+ g_error_free (err);
+ exit (1);
+ }
+
+ g_option_context_free (opt_ctx);
+
+ if (debug)
+ log_level = "DEBUG";
+
+ if (!mm_log_setup (log_level, log_file, show_ts, rel_ts, &err)) {
+ g_warning ("Failed to set up logging: %s", err->message);
+ g_error_free (err);
+ exit (1);
+ }
+
+ setup_signals ();
- g_message ("ModemManager (version " MM_DIST_VERSION ") starting...");
+ mm_info ("ModemManager (version " MM_DIST_VERSION ") starting...");
bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &err);
if (!bus) {
@@ -235,7 +211,7 @@ main (int argc, char *argv[])
g_object_unref (proxy);
dbus_g_connection_unref (bus);
- logging_shutdown ();
+ mm_log_shutdown ();
return 0;
}
diff --git a/src/mm-at-serial-port.c b/src/mm-at-serial-port.c
index 3df8681b..30da3a3b 100644
--- a/src/mm-at-serial-port.c
+++ b/src/mm-at-serial-port.c
@@ -23,7 +23,7 @@
#include "mm-at-serial-port.h"
#include "mm-errors.h"
-#include "mm-options.h"
+#include "mm-log.h"
G_DEFINE_TYPE (MMAtSerialPort, mm_at_serial_port, MM_TYPE_SERIAL_PORT)
@@ -273,7 +273,6 @@ debug_log (MMSerialPort *port, const char *prefix, const char *buf, gsize len)
{
static GString *debug = NULL;
const char *s;
- GTimeVal tv;
if (!debug)
debug = g_string_sized_new (256);
@@ -296,12 +295,7 @@ debug_log (MMSerialPort *port, const char *prefix, const char *buf, gsize len)
}
g_string_append_c (debug, '\'');
- g_get_current_time (&tv);
- g_debug ("<%ld.%ld> (%s): %s",
- tv.tv_sec,
- tv.tv_usec,
- mm_port_get_device (MM_PORT (port)),
- debug->str);
+ mm_dbg ("(%s): %s", mm_port_get_device (MM_PORT (port)), debug->str);
g_string_truncate (debug, 0);
}
diff --git a/src/mm-generic-cdma.c b/src/mm-generic-cdma.c
index 02c6b4ed..0a95e7b1 100644
--- a/src/mm-generic-cdma.c
+++ b/src/mm-generic-cdma.c
@@ -30,6 +30,7 @@
#include "mm-serial-parsers.h"
#include "mm-modem-helpers.h"
#include "libqcdm/src/commands.h"
+#include "mm-log.h"
#define MM_GENERIC_CDMA_PREV_STATE_TAG "prev-state"
@@ -1047,7 +1048,7 @@ get_signal_quality (MMModemCdma *modem,
at_port = mm_generic_cdma_get_best_at_port (MM_GENERIC_CDMA (modem), &info->error);
if (!at_port && !priv->qcdm) {
- g_message ("Returning saved signal quality %d", priv->cdma1x_quality);
+ mm_dbg ("Returning saved signal quality %d", priv->cdma1x_quality);
mm_callback_info_set_result (info, GUINT_TO_POINTER (priv->cdma1x_quality), NULL);
mm_callback_info_schedule (info);
return;
@@ -1876,8 +1877,8 @@ get_registration_state (MMModemCdma *modem,
port = mm_generic_cdma_get_best_at_port (MM_GENERIC_CDMA (modem), &info->error);
if (!port && !priv->qcdm) {
- g_message ("Returning saved registration states: 1x: %d EVDO: %d",
- priv->cdma_1x_reg_state, priv->evdo_reg_state);
+ mm_dbg ("Returning saved registration states: 1x: %d EVDO: %d",
+ priv->cdma_1x_reg_state, priv->evdo_reg_state);
mm_generic_cdma_query_reg_state_set_callback_1x_state (info, priv->cdma_1x_reg_state);
mm_generic_cdma_query_reg_state_set_callback_evdo_state (info, priv->evdo_reg_state);
mm_callback_info_schedule (info);
diff --git a/src/mm-generic-gsm.c b/src/mm-generic-gsm.c
index 9e898198..0c949a1e 100644
--- a/src/mm-generic-gsm.c
+++ b/src/mm-generic-gsm.c
@@ -33,7 +33,7 @@
#include "mm-qcdm-serial-port.h"
#include "mm-serial-parsers.h"
#include "mm-modem-helpers.h"
-#include "mm-options.h"
+#include "mm-log.h"
#include "mm-properties-changed-signal.h"
#include "mm-utils.h"
#include "mm-modem-location.h"
@@ -471,10 +471,8 @@ get_iccid_done (MMModem *modem,
g_free (priv->simid);
priv->simid = g_strdup (g_checksum_get_string (sum));
- if (mm_options_debug ()) {
- g_debug ("SIM ID source '%s'", response);
- g_debug ("SIM ID '%s'", priv->simid);
- }
+ mm_dbg ("SIM ID source '%s'", response);
+ mm_dbg ("SIM ID '%s'", priv->simid);
g_object_notify (G_OBJECT (modem), MM_MODEM_GSM_CARD_SIM_IDENTIFIER);
@@ -1306,12 +1304,9 @@ mm_generic_gsm_enable_complete (MMGenericGsm *self,
*/
if (priv->secondary) {
if (!mm_serial_port_open (MM_SERIAL_PORT (priv->secondary), &error)) {
- if (mm_options_debug ()) {
- g_warning ("%s: error opening secondary port: (%d) %s",
- __func__,
- error ? error->code : -1,
- error && error->message ? error->message : "(unknown)");
- }
+ mm_dbg ("error opening secondary port: (%d) %s",
+ error ? error->code : -1,
+ error && error->message ? error->message : "(unknown)");
}
}
@@ -2237,7 +2232,7 @@ roam_disconnect_done (MMModem *modem,
GError *error,
gpointer user_data)
{
- g_message ("Disconnected because roaming is not allowed");
+ mm_info ("Disconnected because roaming is not allowed");
}
static void
@@ -2268,9 +2263,9 @@ mm_generic_gsm_set_reg_status (MMGenericGsm *self,
if (priv->reg_status[rs_type - 1] == status)
return;
- g_debug ("%s registration state changed: %d",
- (rs_type == MM_GENERIC_GSM_REG_TYPE_CS) ? "CS" : "PS",
- status);
+ mm_dbg ("%s registration state changed: %d",
+ (rs_type == MM_GENERIC_GSM_REG_TYPE_CS) ? "CS" : "PS",
+ status);
priv->reg_status[rs_type - 1] = status;
port = mm_generic_gsm_get_best_at_port (self, NULL);
@@ -2389,11 +2384,8 @@ reg_state_changed (MMAtSerialPort *port,
GError *error = NULL;
if (!mm_gsm_parse_creg_response (match_info, &state, &lac, &cell_id, &act, &cgreg, &error)) {
- if (mm_options_debug ()) {
- g_warning ("%s: error parsing unsolicited registration: %s",
- __func__,
- error && error->message ? error->message : "(unknown)");
- }
+ mm_warn ("error parsing unsolicited registration: %s",
+ error && error->message ? error->message : "(unknown)");
return;
}
@@ -3891,10 +3883,8 @@ ussd_send_done (MMAtSerialPort *port,
if (reply) {
/* look for the reply data coding scheme */
- if (mm_options_debug ()) {
- if ((start = strrchr (end, ',')) != NULL)
- g_debug ("USSD data coding scheme %d", atoi (start + 1));
- }
+ if ((start = strrchr (end, ',')) != NULL)
+ mm_dbg ("USSD data coding scheme %d", atoi (start + 1));
converted = mm_modem_charset_hex_to_utf8 (reply, priv->cur_charset);
mm_callback_info_set_result (info, converted, g_free);
@@ -4164,6 +4154,7 @@ simple_state_machine (MMModem *modem, GError *error, gpointer user_data)
gboolean done = FALSE;
MMModemGsmAllowedMode allowed_mode;
gboolean home_only = FALSE;
+ char *data_device;
info->error = mm_modem_check_removed (modem, error);
if (info->error)
@@ -4171,16 +4162,9 @@ simple_state_machine (MMModem *modem, GError *error, gpointer user_data)
priv = MM_GENERIC_GSM_GET_PRIVATE (modem);
- if (mm_options_debug ()) {
- GTimeVal tv;
- char *data_device;
-
- g_object_get (G_OBJECT (modem), MM_MODEM_DATA_DEVICE, &data_device, NULL);
- g_get_current_time (&tv);
- g_debug ("<%ld.%ld> (%s): simple connect state %d",
- tv.tv_sec, tv.tv_usec, data_device, state);
- g_free (data_device);
- }
+ g_object_get (G_OBJECT (modem), MM_MODEM_DATA_DEVICE, &data_device, NULL);
+ mm_dbg ("(%s): simple connect state %d", data_device, state);
+ g_free (data_device);
switch (state) {
case SIMPLE_STATE_CHECK_PIN:
@@ -4279,29 +4263,21 @@ simple_connect (MMModemSimple *simple,
gpointer user_data)
{
MMCallbackInfo *info;
+ GHashTableIter iter;
+ gpointer key, value;
+ char *data_device;
- /* If debugging, list all the simple connect properties */
- if (mm_options_debug ()) {
- GHashTableIter iter;
- gpointer key, value;
- GTimeVal tv;
- char *data_device;
-
- g_object_get (G_OBJECT (simple), MM_MODEM_DATA_DEVICE, &data_device, NULL);
- g_get_current_time (&tv);
-
- g_hash_table_iter_init (&iter, properties);
- while (g_hash_table_iter_next (&iter, &key, &value)) {
- char *val_str;
-
- val_str = g_strdup_value_contents ((GValue *) value);
- g_debug ("<%ld.%ld> (%s): %s => %s",
- tv.tv_sec, tv.tv_usec,
- data_device, (const char *) key, val_str);
- g_free (val_str);
- }
- g_free (data_device);
+ /* List simple connect properties when debugging */
+ g_object_get (G_OBJECT (simple), MM_MODEM_DATA_DEVICE, &data_device, NULL);
+ g_hash_table_iter_init (&iter, properties);
+ while (g_hash_table_iter_next (&iter, &key, &value)) {
+ char *val_str;
+
+ val_str = g_strdup_value_contents ((GValue *) value);
+ mm_dbg ("(%s): %s => %s", data_device, (const char *) key, val_str);
+ g_free (val_str);
}
+ g_free (data_device);
info = mm_callback_info_new (MM_MODEM (simple), callback, user_data);
mm_callback_info_set_data (info, "simple-connect-properties",
diff --git a/src/mm-log.c b/src/mm-log.c
new file mode 100644
index 00000000..82d40bc8
--- /dev/null
+++ b/src/mm-log.c
@@ -0,0 +1,227 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details:
+ *
+ * Copyright (C) 2011 Red Hat, Inc.
+ */
+
+#define _GNU_SOURCE
+#include <config.h>
+#include <stdio.h>
+#include <syslog.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "mm-log.h"
+
+enum {
+ TS_FLAG_NONE = 0,
+ TS_FLAG_WALL,
+ TS_FLAG_REL
+};
+
+static gboolean ts_flags = TS_FLAG_NONE;
+static guint32 log_level = LOGL_INFO | LOGL_WARN | LOGL_ERR;
+static GTimeVal rel_start = { 0, 0 };
+static int logfd = -1;
+
+typedef struct {
+ guint32 num;
+ const char *name;
+} LogDesc;
+
+static const LogDesc level_descs[] = {
+ { LOGL_ERR, "ERR" },
+ { LOGL_WARN | LOGL_ERR, "WARN" },
+ { LOGL_INFO | LOGL_WARN | LOGL_ERR, "INFO" },
+ { LOGL_DEBUG | LOGL_INFO | LOGL_WARN | LOGL_ERR, "DEBUG" },
+ { 0, NULL }
+};
+
+void
+_mm_log (const char *loc,
+ const char *func,
+ guint32 level,
+ const char *fmt,
+ ...)
+{
+ va_list args;
+ char *msg;
+ GTimeVal tv;
+ char tsbuf[100] = { 0 };
+ char msgbuf[512] = { 0 };
+ int syslog_priority = LOG_INFO;
+ const char *prefix = NULL;
+
+ if (!(log_level & level))
+ return;
+
+ va_start (args, fmt);
+ msg = g_strdup_vprintf (fmt, args);
+ va_end (args);
+
+ if (ts_flags == TS_FLAG_WALL) {
+ g_get_current_time (&tv);
+ snprintf (&tsbuf[0], sizeof (tsbuf), " [%09ld.%06ld]", tv.tv_sec, tv.tv_usec);
+ } else if (ts_flags == TS_FLAG_REL) {
+ time_t secs;
+ suseconds_t usecs;
+
+ g_get_current_time (&tv);
+ secs = tv.tv_sec - rel_start.tv_sec;
+ usecs = tv.tv_usec - rel_start.tv_usec;
+ if (usecs < 0) {
+ secs--;
+ usecs += 1000000;
+ }
+
+ snprintf (&tsbuf[0], sizeof (tsbuf), " [%06ld.%06ld]", secs, usecs);
+ }
+
+ if ((log_level & LOGL_DEBUG) && (level == LOGL_DEBUG))
+ prefix = "debug";
+ else if ((log_level & LOGL_INFO) && (level == LOGL_INFO))
+ prefix = "info";
+ else if ((log_level & LOGL_WARN) && (level == LOGL_WARN)) {
+ prefix = "warn";
+ syslog_priority = LOG_WARNING;
+ } else if ((log_level & LOGL_ERR) && (level == LOGL_ERR)) {
+ prefix = "err";
+ syslog_priority = LOG_ERR;
+ } else
+ g_warn_if_reached ();
+
+ if (prefix) {
+ if (log_level & LOGL_DEBUG)
+ snprintf (msgbuf, sizeof (msgbuf), "<%s>%s [%s] %s(): %s\n", prefix, tsbuf, loc, func, msg);
+ else
+ snprintf (msgbuf, sizeof (msgbuf), "<%s>%s %s\n", prefix, tsbuf, msg);
+
+ if (logfd < 0)
+ syslog (syslog_priority, "%s", msgbuf);
+ else {
+ write (logfd, msgbuf, strlen (msgbuf));
+ fsync (logfd); /* Make sure output is dumped to disk immediately */
+ }
+ }
+
+ g_free (msg);
+}
+
+static void
+log_handler (const gchar *log_domain,
+ GLogLevelFlags level,
+ const gchar *message,
+ gpointer ignored)
+{
+ int syslog_priority;
+
+ switch (level) {
+ case G_LOG_LEVEL_ERROR:
+ syslog_priority = LOG_CRIT;
+ break;
+ case G_LOG_LEVEL_CRITICAL:
+ syslog_priority = LOG_ERR;
+ break;
+ case G_LOG_LEVEL_WARNING:
+ syslog_priority = LOG_WARNING;
+ break;
+ case G_LOG_LEVEL_MESSAGE:
+ syslog_priority = LOG_NOTICE;
+ break;
+ case G_LOG_LEVEL_DEBUG:
+ syslog_priority = LOG_DEBUG;
+ break;
+ case G_LOG_LEVEL_INFO:
+ default:
+ syslog_priority = LOG_INFO;
+ break;
+ }
+
+ if (logfd < 0)
+ syslog (syslog_priority, "%s", message);
+ else
+ write (logfd, message, strlen (message));
+}
+
+gboolean
+mm_log_setup (const char *level,
+ const char *log_file,
+ gboolean show_timestamps,
+ gboolean rel_timestamps,
+ GError **error)
+{
+ /* levels */
+ if (level && strlen (level)) {
+ gboolean found = FALSE;
+ const LogDesc *diter;
+
+ for (diter = &level_descs[0]; diter->name; diter++) {
+ if (!strcasecmp (diter->name, level)) {
+ log_level = diter->num;
+ found = TRUE;
+ break;
+ }
+ }
+
+ if (!found) {
+ g_set_error (error, 0, 0, "Unknown log level '%s'", level);
+ return FALSE;
+ }
+ }
+
+ if (show_timestamps)
+ ts_flags = TS_FLAG_WALL;
+ else if (rel_timestamps)
+ ts_flags = TS_FLAG_REL;
+
+ /* Grab start time for relative timestamps */
+ g_get_current_time (&rel_start);
+
+ if (log_file == NULL)
+ openlog (G_LOG_DOMAIN, LOG_CONS | LOG_PID | LOG_PERROR, LOG_DAEMON);
+ else {
+ logfd = open (log_file,
+ O_CREAT | O_APPEND | O_WRONLY,
+ S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP);
+ if (logfd < 0) {
+ g_set_error (error, 0, 0, "Failed to open log file: (%d) %s",
+ errno, strerror (errno));
+ return FALSE;
+ }
+ }
+
+ g_log_set_handler (G_LOG_DOMAIN,
+ G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
+ log_handler,
+ NULL);
+
+ return TRUE;
+}
+
+void
+mm_log_usr1 (void)
+{
+}
+
+void
+mm_log_shutdown (void)
+{
+ if (logfd < 0)
+ closelog ();
+ else
+ close (logfd);
+}
+
diff --git a/src/mm-log.h b/src/mm-log.h
new file mode 100644
index 00000000..9b0d875f
--- /dev/null
+++ b/src/mm-log.h
@@ -0,0 +1,61 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details:
+ *
+ * Copyright (C) 2011 Red Hat, Inc.
+ */
+
+#ifndef MM_LOG_H
+#define MM_LOG_H
+
+#include <glib.h>
+
+/* Log levels */
+enum {
+ LOGL_ERR = 0x00000001,
+ LOGL_WARN = 0x00000002,
+ LOGL_INFO = 0x00000004,
+ LOGL_DEBUG = 0x00000008
+};
+
+#define mm_err(...) \
+ _mm_log (G_STRLOC, G_STRFUNC, LOGL_ERR, ## __VA_ARGS__ )
+
+#define mm_warn(...) \
+ _mm_log (G_STRLOC, G_STRFUNC, LOGL_WARN, ## __VA_ARGS__ )
+
+#define mm_info(...) \
+ _mm_log (G_STRLOC, G_STRFUNC, LOGL_INFO, ## __VA_ARGS__ )
+
+#define mm_dbg(...) \
+ _mm_log (G_STRLOC, G_STRFUNC, LOGL_DEBUG, ## __VA_ARGS__ )
+
+#define mm_log(level, ...) \
+ _mm_log (G_STRLOC, G_STRFUNC, level, ## __VA_ARGS__ )
+
+void _mm_log (const char *loc,
+ const char *func,
+ guint32 level,
+ const char *fmt,
+ ...) __attribute__((__format__ (__printf__, 4, 5)));
+
+gboolean mm_log_setup (const char *level,
+ const char *log_file,
+ gboolean show_ts,
+ gboolean rel_ts,
+ GError **error);
+
+void mm_log_usr1 (void);
+
+void mm_log_shutdown (void);
+
+#endif /* MM_LOG_H */
+
diff --git a/src/mm-manager.c b/src/mm-manager.c
index 605ec5a1..67377807 100644
--- a/src/mm-manager.c
+++ b/src/mm-manager.c
@@ -24,6 +24,7 @@
#include "mm-manager.h"
#include "mm-errors.h"
#include "mm-plugin.h"
+#include "mm-log.h"
static gboolean impl_manager_enumerate_devices (MMManager *manager,
GPtrArray **devices,
@@ -112,9 +113,9 @@ load_plugin (const char *path)
plugin = (*plugin_create_func) ();
if (plugin) {
g_object_weak_ref (G_OBJECT (plugin), (GWeakNotify) g_module_close, module);
- g_message ("Loaded plugin %s", mm_plugin_get_name (plugin));
+ mm_info ("Loaded plugin %s", mm_plugin_get_name (plugin));
} else
- g_warning ("Could not load plugin %s: initialization failed", path);
+ mm_warn ("Could not load plugin %s: initialization failed", path);
out:
if (!plugin)
@@ -196,7 +197,7 @@ remove_modem (MMManager *manager, MMModem *modem)
device = mm_modem_get_device (modem);
g_assert (device);
- g_debug ("Removed modem %s", device);
+ mm_dbg ("Removed modem %s", device);
g_signal_emit (manager, signals[DEVICE_REMOVED], 0, modem);
g_hash_table_remove (priv->modems, device);
@@ -234,8 +235,8 @@ check_export_modem (MMManager *self, MMModem *modem)
SupportsInfo *info = value;
if (!strcmp (info->physdev_path, modem_physdev)) {
- g_debug ("(%s/%s): outstanding support task prevents export of %s",
- info->subsys, info->name, modem_physdev);
+ mm_dbg ("(%s/%s): outstanding support task prevents export of %s",
+ info->subsys, info->name, modem_physdev);
goto out;
}
}
@@ -257,7 +258,7 @@ check_export_modem (MMManager *self, MMModem *modem)
dbus_g_connection_register_g_object (priv->connection, path, G_OBJECT (modem));
g_object_set_data_full (G_OBJECT (modem), DBUS_PATH_TAG, path, (GDestroyNotify) g_free);
- g_debug ("Exported modem %s as %s", modem_physdev, path);
+ mm_dbg ("Exported modem %s as %s", modem_physdev, path);
physdev = g_udev_client_query_by_sysfs_path (priv->udev, modem_physdev);
if (physdev)
@@ -268,10 +269,10 @@ check_export_modem (MMManager *self, MMModem *modem)
MM_MODEM_HW_VID, &vid,
MM_MODEM_HW_PID, &pid,
NULL);
- g_debug ("(%s): VID 0x%04X PID 0x%04X (%s)",
+ mm_dbg ("(%s): VID 0x%04X PID 0x%04X (%s)",
path, (vid & 0xFFFF), (pid & 0xFFFF),
subsys ? subsys : "unknown");
- g_debug ("(%s): data port is %s", path, data_device);
+ mm_dbg ("(%s): data port is %s", path, data_device);
g_free (data_device);
if (physdev)
@@ -309,7 +310,7 @@ add_modem (MMManager *manager, MMModem *modem, MMPlugin *plugin)
g_hash_table_insert (priv->modems, g_strdup (device), modem);
g_object_set_data (G_OBJECT (modem), MANAGER_PLUGIN_TAG, plugin);
- g_debug ("Added modem %s", device);
+ mm_dbg ("Added modem %s", device);
g_signal_connect (modem, "notify::" MM_MODEM_VALID, G_CALLBACK (modem_valid), manager);
check_export_modem (manager, modem);
}
@@ -446,7 +447,7 @@ supports_defer_timeout (gpointer user_data)
existing = find_modem_for_device (info->manager, info->physdev_path);
- g_debug ("(%s): re-checking support...", info->name);
+ mm_dbg ("(%s): re-checking support...", info->name);
try_supports_port (info->manager,
MM_PLUGIN (info->cur_plugin->data),
existing,
@@ -478,9 +479,9 @@ try_supports_port (MMManager *manager,
supports_callback (plugin, info->subsys, info->name, 0, info);
break;
case MM_PLUGIN_SUPPORTS_PORT_DEFER:
- g_debug ("(%s): (%s) deferring support check",
- mm_plugin_get_name (plugin),
- info->name);
+ mm_dbg ("(%s): (%s) deferring support check",
+ mm_plugin_get_name (plugin),
+ info->name);
if (info->defer_id)
g_source_remove (info->defer_id);
@@ -549,22 +550,21 @@ do_grab_port (gpointer user_data)
type_name = "CDMA";
device = mm_modem_get_device (modem);
- g_message ("(%s): %s modem %s claimed port %s",
- mm_plugin_get_name (info->best_plugin),
- type_name,
- device,
- info->name);
+ mm_info ("(%s): %s modem %s claimed port %s",
+ mm_plugin_get_name (info->best_plugin),
+ type_name,
+ device,
+ info->name);
g_free (device);
add_modem (info->manager, modem, info->best_plugin);
} else {
- g_warning ("%s: plugin '%s' claimed to support %s/%s but couldn't: (%d) %s",
- __func__,
- mm_plugin_get_name (info->best_plugin),
- info->subsys,
- info->name,
- error ? error->code : -1,
- (error && error->message) ? error->message : "(unknown)");
+ mm_warn ("plugin '%s' claimed to support %s/%s but couldn't: (%d) %s",
+ mm_plugin_get_name (info->best_plugin),
+ info->subsys,
+ info->name,
+ error ? error->code : -1,
+ (error && error->message) ? error->message : "(unknown)");
modem = existing;
}
}
@@ -613,8 +613,8 @@ supports_callback (MMPlugin *plugin,
* support this port, but this plugin is clearly the right plugin
* since it claimed this port's physical modem, just drop the port.
*/
- g_debug ("(%s/%s): ignoring port unsupported by physical modem's plugin",
- info->subsys, info->name);
+ mm_dbg ("(%s/%s): ignoring port unsupported by physical modem's plugin",
+ info->subsys, info->name);
supports_cleanup (info->manager, info->subsys, info->name, existing);
return;
}
@@ -631,14 +631,14 @@ supports_callback (MMPlugin *plugin,
*/
next_plugin = existing_plugin;
} else {
- g_debug ("(%s/%s): plugin %p (%s) existing %p (%s) info->best %p (%s)",
- info->subsys, info->name,
- plugin,
- plugin ? mm_plugin_get_name (plugin) : "none",
- existing_plugin,
- existing_plugin ? mm_plugin_get_name (existing_plugin) : "none",
- info->best_plugin,
- info->best_plugin ? mm_plugin_get_name (info->best_plugin) : "none");
+ mm_dbg ("(%s/%s): plugin %p (%s) existing %p (%s) info->best %p (%s)",
+ info->subsys, info->name,
+ plugin,
+ plugin ? mm_plugin_get_name (plugin) : "none",
+ existing_plugin,
+ existing_plugin ? mm_plugin_get_name (existing_plugin) : "none",
+ info->best_plugin,
+ info->best_plugin ? mm_plugin_get_name (info->best_plugin) : "none");
g_assert_not_reached ();
}
} else {
@@ -783,14 +783,14 @@ device_added (MMManager *manager, GUdevDevice *device)
&& strcmp (name, "lo")
&& strcmp (name, "tty")
&& !strstr (name, "virbr"))
- g_debug ("(%s/%s): could not get port's parent device", subsys, name);
+ mm_dbg ("(%s/%s): could not get port's parent device", subsys, name);
goto out;
}
/* Is the device blacklisted? */
if (g_udev_device_get_property_as_boolean (physdev, "ID_MM_DEVICE_IGNORE")) {
- g_debug ("(%s/%s): port's parent device is blacklisted", subsys, name);
+ mm_dbg ("(%s/%s): port's parent device is blacklisted", subsys, name);
goto out;
}
@@ -799,13 +799,13 @@ device_added (MMManager *manager, GUdevDevice *device)
if ( physdev_subsys
&& !strcmp (physdev_subsys, "platform")
&& !g_udev_device_get_property_as_boolean (physdev, "ID_MM_PLATFORM_DRIVER_PROBE")) {
- g_debug ("(%s/%s): port's parent platform driver is not whitelisted", subsys, name);
+ mm_dbg ("(%s/%s): port's parent platform driver is not whitelisted", subsys, name);
goto out;
}
physdev_path = g_udev_device_get_sysfs_path (physdev);
if (!physdev_path) {
- g_debug ("(%s/%s): could not get port's parent device sysfs path", subsys, name);
+ mm_dbg ("(%s/%s): could not get port's parent device sysfs path", subsys, name);
goto out;
}
@@ -865,10 +865,10 @@ device_removed (MMManager *manager, GUdevDevice *device)
*/
const char *sysfs_path = g_udev_device_get_sysfs_path (device);
- // g_debug ("Looking for a modem for removed device %s", sysfs_path);
+ // mm_dbg ("Looking for a modem for removed device %s", sysfs_path);
modem = find_modem_for_device (manager, sysfs_path);
if (modem) {
- g_debug ("Removing modem claimed by removed device %s", sysfs_path);
+ mm_dbg ("Removing modem claimed by removed device %s", sysfs_path);
remove_modem (manager, modem);
return;
}
diff --git a/src/mm-modem-base.c b/src/mm-modem-base.c
index ec0fd979..f303627f 100644
--- a/src/mm-modem-base.c
+++ b/src/mm-modem-base.c
@@ -25,7 +25,7 @@
#include "mm-at-serial-port.h"
#include "mm-qcdm-serial-port.h"
#include "mm-errors.h"
-#include "mm-options.h"
+#include "mm-log.h"
#include "mm-properties-changed-signal.h"
#include "mm-callback-info.h"
#include "mm-modem-helpers.h"
@@ -148,15 +148,13 @@ mm_modem_base_add_port (MMModemBase *self,
if (!port)
return NULL;
- if (mm_options_debug ()) {
- device = mm_modem_get_device (MM_MODEM (self));
+ device = mm_modem_get_device (MM_MODEM (self));
+ mm_dbg ("(%s) type %s claimed by %s",
+ name,
+ mm_port_type_to_name (ptype),
+ device);
+ g_free (device);
- g_message ("(%s) type %s claimed by %s",
- name,
- mm_port_type_to_name (ptype),
- device);
- g_free (device);
- }
key = get_hash_key (subsys, name);
g_hash_table_insert (priv->ports, key, port);
return port;
@@ -233,9 +231,9 @@ mm_modem_base_set_equipment_identifier (MMModemBase *self, const char *ident)
dbus_path = (const char *) g_object_get_data (G_OBJECT (self), DBUS_PATH_TAG);
if (dbus_path) {
if (priv->equipment_ident)
- g_message ("Modem %s: Equipment identifier set (%s)", dbus_path, priv->equipment_ident);
+ mm_info ("Modem %s: Equipment identifier set (%s)", dbus_path, priv->equipment_ident);
else
- g_message ("Modem %s: Equipment identifier not set", dbus_path);
+ mm_warn ("Modem %s: Equipment identifier not set", dbus_path);
}
g_object_notify (G_OBJECT (self), MM_MODEM_EQUIPMENT_IDENTIFIER);
@@ -274,9 +272,9 @@ mm_modem_base_set_unlock_required (MMModemBase *self, const char *unlock_require
dbus_path = (const char *) g_object_get_data (G_OBJECT (self), DBUS_PATH_TAG);
if (dbus_path) {
if (priv->unlock_required)
- g_message ("Modem %s: unlock required (%s)", dbus_path, priv->unlock_required);
+ mm_info ("Modem %s: unlock required (%s)", dbus_path, priv->unlock_required);
else
- g_message ("Modem %s: unlock no longer required", dbus_path);
+ mm_info ("Modem %s: unlock no longer required", dbus_path);
}
g_object_notify (G_OBJECT (self), MM_MODEM_UNLOCK_REQUIRED);
@@ -311,11 +309,11 @@ mm_modem_base_set_unlock_retries (MMModemBase *self, guint unlock_retries)
dbus_path = (const char *) g_object_get_data (G_OBJECT (self), DBUS_PATH_TAG);
if (dbus_path) {
if (priv->unlock_required) {
- g_message ("Modem %s: # unlock retries for %s is %d",
- dbus_path, priv->unlock_required, priv->unlock_retries);
+ mm_info ("Modem %s: # unlock retries for %s is %d",
+ dbus_path, priv->unlock_required, priv->unlock_retries);
} else {
- g_message ("Modem %s: # unlock retries is %d",
- dbus_path, priv->unlock_retries);
+ mm_info ("Modem %s: # unlock retries is %d",
+ dbus_path, priv->unlock_retries);
}
}
@@ -446,8 +444,7 @@ card_info_cache_invoke (MMCallbackInfo *info)
priv->gsn,
priv->revision,
priv->model,
- priv->manf,
- mm_options_debug ());
+ priv->manf);
g_object_notify (G_OBJECT (self), MM_MODEM_DEVICE_IDENTIFIER);
callback (info->modem, priv->manf, priv->model, priv->revision, info->error, info->user_data);
diff --git a/src/mm-modem-helpers.c b/src/mm-modem-helpers.c
index 499c0dde..f13b4f27 100644
--- a/src/mm-modem-helpers.c
+++ b/src/mm-modem-helpers.c
@@ -25,6 +25,7 @@
#include "mm-errors.h"
#include "mm-modem-helpers.h"
+#include "mm-log.h"
const char *
mm_strip_tag (const char *str, const char *cmd)
@@ -829,10 +830,9 @@ mm_create_device_identifier (guint vid,
const char *gsn,
const char *revision,
const char *model,
- const char *manf,
- gboolean debug)
+ const char *manf)
{
- GString *devid, *dbg = NULL;
+ GString *devid, *msg = NULL;
GChecksum *sum;
char *p, *ret = NULL;
char str_vid[10], str_pid[10];
@@ -859,41 +859,35 @@ mm_create_device_identifier (guint vid,
return NULL;
p = devid->str;
- if (debug)
- dbg = g_string_sized_new (strlen (devid->str) + 17);
+ msg = g_string_sized_new (strlen (devid->str) + 17);
sum = g_checksum_new (G_CHECKSUM_SHA1);
if (vid) {
snprintf (str_vid, sizeof (str_vid) - 1, "%08x", vid);
g_checksum_update (sum, (const guchar *) &str_vid[0], strlen (str_vid));
- if (dbg)
- g_string_append_printf (dbg, "%08x", vid);
+ g_string_append_printf (msg, "%08x", vid);
}
if (vid) {
snprintf (str_pid, sizeof (str_pid) - 1, "%08x", pid);
g_checksum_update (sum, (const guchar *) &str_pid[0], strlen (str_pid));
- if (dbg)
- g_string_append_printf (dbg, "%08x", pid);
+ g_string_append_printf (msg, "%08x", pid);
}
while (*p) {
/* Strip spaces and linebreaks */
if (!isblank (*p) && !isspace (*p) && isascii (*p)) {
g_checksum_update (sum, (const guchar *) p, 1);
- if (dbg)
- g_string_append_c (dbg, *p);
+ g_string_append_c (msg, *p);
}
p++;
}
ret = g_strdup (g_checksum_get_string (sum));
g_checksum_free (sum);
- if (dbg) {
- g_debug ("Device ID source '%s'", dbg->str);
- g_debug ("Device ID '%s'", ret);
- g_string_free (dbg, TRUE);
- }
+ mm_dbg ("Device ID source '%s'", msg->str);
+ mm_dbg ("Device ID '%s'", ret);
+ g_string_free (msg, TRUE);
return ret;
}
diff --git a/src/mm-modem-helpers.h b/src/mm-modem-helpers.h
index eda6e5d7..71ccaa5d 100644
--- a/src/mm-modem-helpers.h
+++ b/src/mm-modem-helpers.h
@@ -66,8 +66,7 @@ char *mm_create_device_identifier (guint vid,
const char *gsn,
const char *revision,
const char *model,
- const char *manf,
- gboolean debug);
+ const char *manf);
typedef struct CindResponse CindResponse;
GHashTable *mm_parse_cind_test_response (const char *reply, GError **error);
diff --git a/src/mm-modem.c b/src/mm-modem.c
index 3535cded..f8234723 100644
--- a/src/mm-modem.c
+++ b/src/mm-modem.c
@@ -18,7 +18,7 @@
#include <string.h>
#include <dbus/dbus-glib.h>
#include "mm-modem.h"
-#include "mm-options.h"
+#include "mm-log.h"
#include "mm-errors.h"
#include "mm-callback-info.h"
#include "mm-marshal.h"
@@ -755,22 +755,10 @@ mm_modem_set_state (MMModem *self,
dbus_path = (const char *) g_object_get_data (G_OBJECT (self), DBUS_PATH_TAG);
if (dbus_path) {
- if (mm_options_debug ()) {
- GTimeVal tv;
-
- g_get_current_time (&tv);
- g_debug ("<%ld.%ld> Modem %s: state changed (%s -> %s)",
- tv.tv_sec,
- tv.tv_usec,
- dbus_path,
- state_to_string (old_state),
- state_to_string (new_state));
- } else {
- g_message ("Modem %s: state changed (%s -> %s)",
- dbus_path,
- state_to_string (old_state),
- state_to_string (new_state));
- }
+ mm_info ("Modem %s: state changed (%s -> %s)",
+ dbus_path,
+ state_to_string (old_state),
+ state_to_string (new_state));
}
}
}
diff --git a/src/mm-options.c b/src/mm-options.c
deleted file mode 100644
index 7bbeefd6..00000000
--- a/src/mm-options.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details:
- *
- * Copyright (C) 2008 Novell, Inc.
- */
-
-#include <stdlib.h>
-#include <glib.h>
-#include "mm-options.h"
-
-static gboolean debug = FALSE;
-
-void
-mm_options_parse (int argc, char *argv[])
-{
- GOptionContext *opt_ctx;
- GError *error = NULL;
- GOptionEntry entries[] = {
- { "debug", 0, 0, G_OPTION_ARG_NONE, &debug, "Output to console rather than syslog", NULL },
- { NULL }
- };
-
- opt_ctx = g_option_context_new (NULL);
- g_option_context_set_summary (opt_ctx, "DBus system service to communicate with modems.");
- g_option_context_add_main_entries (opt_ctx, entries, NULL);
-
- if (!g_option_context_parse (opt_ctx, &argc, &argv, &error)) {
- g_warning ("%s\n", error->message);
- g_error_free (error);
- exit (1);
- }
-
- g_option_context_free (opt_ctx);
-}
-
-void
-mm_options_set_debug (gboolean enabled)
-{
- debug = enabled;
-}
-
-gboolean
-mm_options_debug (void)
-{
- return debug;
-}
diff --git a/src/mm-options.h b/src/mm-options.h
deleted file mode 100644
index ce33e274..00000000
--- a/src/mm-options.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details:
- *
- * Copyright (C) 2008 Novell, Inc.
- */
-
-#ifndef MM_OPTIONS_H
-#define MM_OPTIONS_H
-
-void mm_options_parse (int argc, char *argv[]);
-void mm_options_set_debug (gboolean enabled);
-gboolean mm_options_debug (void);
-
-#endif /* MM_OPTIONS_H */
diff --git a/src/mm-plugin-base.c b/src/mm-plugin-base.c
index 5a86b977..8d32e2a5 100644
--- a/src/mm-plugin-base.c
+++ b/src/mm-plugin-base.c
@@ -36,6 +36,7 @@
#include "mm-utils.h"
#include "libqcdm/src/commands.h"
#include "libqcdm/src/utils.h"
+#include "mm-log.h"
static void plugin_init (MMPlugin *plugin_class);
@@ -807,9 +808,9 @@ try_open (gpointer user_data)
task_priv->full_id = g_signal_connect (task_priv->probe_port, "buffer-full",
G_CALLBACK (port_buffer_full), task);
- g_debug ("(%s): probe requested by plugin '%s'",
- g_udev_device_get_name (port),
- mm_plugin_get_name (MM_PLUGIN (task_priv->plugin)));
+ mm_dbg ("(%s): probe requested by plugin '%s'",
+ g_udev_device_get_name (port),
+ mm_plugin_get_name (MM_PLUGIN (task_priv->plugin)));
mm_serial_port_flash (MM_SERIAL_PORT (task_priv->probe_port), 100, TRUE, flash_done, task);
}
diff --git a/src/mm-port.c b/src/mm-port.c
index b2018fe2..667b3fc4 100644
--- a/src/mm-port.c
+++ b/src/mm-port.c
@@ -19,7 +19,7 @@
#include <string.h>
#include "mm-port.h"
-#include "mm-options.h"
+#include "mm-log.h"
G_DEFINE_TYPE (MMPort, mm_port, G_TYPE_OBJECT)
@@ -161,16 +161,10 @@ mm_port_set_connected (MMPort *self, gboolean connected)
if (priv->connected != connected) {
priv->connected = connected;
g_object_notify (G_OBJECT (self), MM_PORT_CONNECTED);
- if (mm_options_debug()) {
- GTimeVal tv;
-
- g_get_current_time (&tv);
- g_debug ("<%ld.%ld> (%s): port now %s",
- tv.tv_sec,
- tv.tv_usec,
- priv->device,
- connected ? "connected" : "disconnected");
- }
+
+ mm_dbg ("(%s): port now %s",
+ priv->device,
+ connected ? "connected" : "disconnected");
}
}
diff --git a/src/mm-properties-changed-signal.c b/src/mm-properties-changed-signal.c
index 633ff771..4408e80a 100644
--- a/src/mm-properties-changed-signal.c
+++ b/src/mm-properties-changed-signal.c
@@ -21,6 +21,7 @@
#include "mm-marshal.h"
#include "mm-properties-changed-signal.h"
#include "mm-properties-changed-glue.h"
+#include "mm-log.h"
#define DBUS_TYPE_G_MAP_OF_VARIANT (dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE))
#define DBUS_TYPE_G_ARRAY_OF_STRING (dbus_g_type_get_collection ("GPtrArray", G_TYPE_STRING))
@@ -150,10 +151,10 @@ properties_changed (gpointer data)
{
char buf[2048] = { 0, };
g_hash_table_foreach (props, add_to_string, &buf);
- g_message ("%s: %s -> (%s) %s", __func__,
- G_OBJECT_TYPE_NAME (object),
- interface,
- buf);
+ mm_dbg ("%s: %s -> (%s) %s", __func__,
+ G_OBJECT_TYPE_NAME (object),
+ interface,
+ buf);
}
#endif
diff --git a/src/mm-qcdm-serial-port.c b/src/mm-qcdm-serial-port.c
index 7f4302c5..e467f2a2 100644
--- a/src/mm-qcdm-serial-port.c
+++ b/src/mm-qcdm-serial-port.c
@@ -21,9 +21,9 @@
#include "mm-qcdm-serial-port.h"
#include "mm-errors.h"
-#include "mm-options.h"
#include "libqcdm/src/com.h"
#include "libqcdm/src/utils.h"
+#include "mm-log.h"
G_DEFINE_TYPE (MMQcdmSerialPort, mm_qcdm_serial_port, MM_TYPE_SERIAL_PORT)
@@ -182,7 +182,6 @@ debug_log (MMSerialPort *port, const char *prefix, const char *buf, gsize len)
{
static GString *debug = NULL;
const char *s = buf;
- GTimeVal tv;
if (!debug)
debug = g_string_sized_new (512);
@@ -192,12 +191,7 @@ debug_log (MMSerialPort *port, const char *prefix, const char *buf, gsize len)
while (len--)
g_string_append_printf (debug, " %02x", (guint8) (*s++ & 0xFF));
- g_get_current_time (&tv);
- g_debug ("<%ld.%ld> (%s): %s",
- tv.tv_sec,
- tv.tv_usec,
- mm_port_get_device (MM_PORT (port)),
- debug->str);
+ mm_dbg ("(%s): %s", mm_port_get_device (MM_PORT (port)), debug->str);
g_string_truncate (debug, 0);
}
diff --git a/src/mm-serial-parsers.c b/src/mm-serial-parsers.c
index 735ebd97..75bcce4d 100644
--- a/src/mm-serial-parsers.c
+++ b/src/mm-serial-parsers.c
@@ -19,6 +19,7 @@
#include "mm-serial-parsers.h"
#include "mm-errors.h"
+#include "mm-log.h"
/* Clean up the response by removing control characters like <CR><LF> etc */
static void
@@ -174,7 +175,7 @@ mm_serial_parser_v0_parse (gpointer data,
response_clean (response);
if (local_error) {
- g_debug ("Got failure code %d: %s", local_error->code, local_error->message);
+ mm_dbg ("Got failure code %d: %s", local_error->code, local_error->message);
g_propagate_error (error, local_error);
}
@@ -336,7 +337,7 @@ done:
response_clean (response);
if (local_error) {
- g_debug ("Got failure code %d: %s", local_error->code, local_error->message);
+ mm_dbg ("Got failure code %d: %s", local_error->code, local_error->message);
g_propagate_error (error, local_error);
}
diff --git a/src/mm-serial-port.c b/src/mm-serial-port.c
index 0f4d888e..bf2a98ab 100644
--- a/src/mm-serial-port.c
+++ b/src/mm-serial-port.c
@@ -30,7 +30,7 @@
#include "mm-serial-port.h"
#include "mm-errors.h"
-#include "mm-options.h"
+#include "mm-log.h"
static gboolean mm_serial_port_queue_process (gpointer data);
@@ -152,10 +152,10 @@ mm_serial_port_print_config (MMSerialPort *port, const char *detail)
return;
}
- g_message ("*** %s (%s): (%s) baud rate: %d (%s)",
- __func__, detail, mm_port_get_device (MM_PORT (port)),
- stbuf.c_cflag & CBAUD,
- baud_to_string (stbuf.c_cflag & CBAUD));
+ mm_info ("(%s): (%s) baud rate: %d (%s)",
+ detail, mm_port_get_device (MM_PORT (port)),
+ stbuf.c_cflag & CBAUD,
+ baud_to_string (stbuf.c_cflag & CBAUD));
}
#endif
@@ -350,7 +350,7 @@ serial_debug (MMSerialPort *self, const char *prefix, const char *buf, gsize len
{
g_return_if_fail (len > 0);
- if (mm_options_debug () && MM_SERIAL_PORT_GET_CLASS (self)->debug_log)
+ if (MM_SERIAL_PORT_GET_CLASS (self)->debug_log)
MM_SERIAL_PORT_GET_CLASS (self)->debug_log (self, prefix, buf, len);
}
@@ -686,7 +686,6 @@ mm_serial_port_open (MMSerialPort *self, GError **error)
MMSerialPortPrivate *priv;
char *devfile;
const char *device;
- GTimeVal tv;
struct serial_struct sinfo;
g_return_val_if_fail (MM_IS_SERIAL_PORT (self), FALSE);
@@ -700,12 +699,7 @@ mm_serial_port_open (MMSerialPort *self, GError **error)
goto success;
}
- if (mm_options_debug ()) {
- g_get_current_time (&tv);
- g_debug ("<%ld.%ld> (%s) opening serial port...",
- tv.tv_sec, tv.tv_usec, device);
- } else
- g_message ("(%s) opening serial port...", device);
+ mm_info ("(%s) opening serial port...", device);
/* Only open a new file descriptor if we weren't given one already */
if (priv->fd < 0) {
@@ -767,11 +761,7 @@ mm_serial_port_open (MMSerialPort *self, GError **error)
success:
priv->open_count++;
- if (mm_options_debug ()) {
- g_get_current_time (&tv);
- g_debug ("<%ld.%ld> (%s) device open count is %d (open)",
- tv.tv_sec, tv.tv_usec, device, priv->open_count);
- }
+ mm_dbg ("(%s) device open count is %d (open)", device, priv->open_count);
return TRUE;
error:
@@ -794,7 +784,6 @@ mm_serial_port_close (MMSerialPort *self)
{
MMSerialPortPrivate *priv;
const char *device;
- GTimeVal tv;
int i;
g_return_if_fail (MM_IS_SERIAL_PORT (self));
@@ -806,11 +795,7 @@ mm_serial_port_close (MMSerialPort *self)
priv->open_count--;
- if (mm_options_debug ()) {
- g_get_current_time (&tv);
- g_debug ("<%ld.%ld> (%s) device open count is %d (close)",
- tv.tv_sec, tv.tv_usec, device, priv->open_count);
- }
+ mm_dbg ("(%s) device open count is %d (close)", device, priv->open_count);
if (priv->open_count > 0)
return;
@@ -823,12 +808,7 @@ mm_serial_port_close (MMSerialPort *self)
if (priv->fd >= 0) {
GTimeVal tv_start, tv_end;
- g_get_current_time (&tv_start);
- if (mm_options_debug ()) {
- g_debug ("<%ld.%ld> (%s) closing serial port...",
- tv_start.tv_sec, tv_start.tv_usec, device);
- } else
- g_message ("(%s) closing serial port...", device);
+ mm_info ("(%s) closing serial port...", device);
mm_port_set_connected (MM_PORT (self), FALSE);
@@ -842,16 +822,16 @@ mm_serial_port_close (MMSerialPort *self)
mm_serial_port_flash_cancel (self);
+ g_get_current_time (&tv_start);
+
tcsetattr (priv->fd, TCSANOW, &priv->old_t);
tcflush (priv->fd, TCIOFLUSH);
close (priv->fd);
priv->fd = -1;
g_get_current_time (&tv_end);
- if (mm_options_debug ()) {
- g_debug ("<%ld.%ld> (%s) serial port closed",
- tv_end.tv_sec, tv_end.tv_usec, device);
- }
+
+ mm_info ("(%s) serial port closed", device);
/* Some ports don't respond to data and when close is called
* the serial layer waits up to 30 second (closing_wait) for
@@ -859,7 +839,7 @@ mm_serial_port_close (MMSerialPort *self)
* Log that. See GNOME bug #630670 for more details.
*/
if (tv_end.tv_sec - tv_start.tv_sec > 20)
- g_warning ("(%s): close blocked by driver for more than 20 seconds!", device);
+ mm_warn ("(%s): close blocked by driver for more than 20 seconds!", device);
}
/* Clear the command queue */
diff --git a/src/tests/test-modem-helpers.c b/src/tests/test-modem-helpers.c
index 038f1f14..946916ff 100644
--- a/src/tests/test-modem-helpers.c
+++ b/src/tests/test-modem-helpers.c
@@ -17,6 +17,7 @@
#include <string.h>
#include "mm-modem-helpers.h"
+#include "mm-log.h"
typedef struct {
GPtrArray *solicited_creg;
@@ -1079,8 +1080,7 @@ test_devid_item (void *f, gpointer d)
item->gsn,
item->revision,
item->model,
- item->manf,
- FALSE);
+ item->manf);
g_assert (devid);
if (strcmp (devid, item->devid))
g_message ("%s", devid);
@@ -1178,6 +1178,15 @@ test_data_free (TestData *data)
g_free (data);
}
+void
+_mm_log (const char *loc,
+ const char *func,
+ guint32 level,
+ const char *fmt,
+ ...)
+{
+ /* Dummy log function */
+}
#if GLIB_CHECK_VERSION(2,25,12)
typedef GTestFixtureFunc TCFunc;
diff --git a/src/tests/test-qcdm-serial-port.c b/src/tests/test-qcdm-serial-port.c
index ab737c5e..3aeed6ab 100644
--- a/src/tests/test-qcdm-serial-port.c
+++ b/src/tests/test-qcdm-serial-port.c
@@ -31,6 +31,7 @@
#include "libqcdm/src/commands.h"
#include "libqcdm/src/utils.h"
#include "libqcdm/src/com.h"
+#include "mm-log.h"
typedef struct {
int master;
@@ -449,10 +450,14 @@ typedef void (*TCFunc)(void);
#define TESTCASE(t, d) g_test_create_case (#t, 0, d, NULL, (TCFunc) t, NULL)
#define TESTCASE_PTY(t, d) g_test_create_case (#t, sizeof (*d), d, (TCFunc) test_pty_create, (TCFunc) t, (TCFunc) test_pty_cleanup)
-gboolean mm_options_debug (void);
-gboolean mm_options_debug (void)
+void
+_mm_log (const char *loc,
+ const char *func,
+ guint32 level,
+ const char *fmt,
+ ...)
{
- return g_test_verbose ();
+ /* Dummy log function */
}
int main (int argc, char **argv)