aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mm-base-modem.c85
1 files changed, 48 insertions, 37 deletions
diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c
index d028be7b..0805cedb 100644
--- a/src/mm-base-modem.c
+++ b/src/mm-base-modem.c
@@ -31,12 +31,15 @@
#include "mm-context.h"
#include "mm-base-modem.h"
-#include "mm-log.h"
+#include "mm-log-object.h"
#include "mm-port-enums-types.h"
#include "mm-serial-parsers.h"
#include "mm-modem-helpers.h"
-G_DEFINE_ABSTRACT_TYPE (MMBaseModem, mm_base_modem, MM_GDBUS_TYPE_OBJECT_SKELETON);
+static void log_object_iface_init (MMLogObjectInterface *iface);
+
+G_DEFINE_ABSTRACT_TYPE_WITH_CODE (MMBaseModem, mm_base_modem, MM_GDBUS_TYPE_OBJECT_SKELETON,
+ G_IMPLEMENT_INTERFACE (MM_TYPE_LOG_OBJECT, log_object_iface_init))
/* If we get 10 consecutive timeouts in a serial port, we consider the modem
* invalid and we request re-probing. */
@@ -134,22 +137,17 @@ serial_port_timed_out_cb (MMPortSerial *port,
{
/* If reached the maximum number of timeouts, invalidate modem */
if (n_consecutive_timeouts >= self->priv->max_timeouts) {
- mm_err ("(%s/%s) %s port timed out %u consecutive times, marking modem '%s' as invalid",
- mm_port_subsys_get_string (mm_port_get_subsys (MM_PORT (port))),
- mm_port_get_device (MM_PORT (port)),
- mm_port_type_get_string (mm_port_get_port_type (MM_PORT (port))),
- n_consecutive_timeouts,
- g_dbus_object_get_object_path (G_DBUS_OBJECT (self)));
+ mm_obj_err (self, "port %s timed out %u consecutive times, marking modem as invalid",
+ mm_port_get_device (MM_PORT (port)),
+ n_consecutive_timeouts);
g_cancellable_cancel (self->priv->cancellable);
return;
}
if (n_consecutive_timeouts > 1)
- mm_warn ("(%s/%s) %s port timed out %u consecutive times",
- mm_port_subsys_get_string (mm_port_get_subsys (MM_PORT (port))),
- mm_port_get_device (MM_PORT (port)),
- mm_port_type_get_string (mm_port_get_port_type (MM_PORT (port))),
- n_consecutive_timeouts);
+ mm_obj_warn (self, "port %s timed out %u consecutive times",
+ mm_port_get_device (MM_PORT (port)),
+ n_consecutive_timeouts);
}
gboolean
@@ -228,13 +226,13 @@ mm_base_modem_grab_port (MMBaseModem *self,
/* Prefer plugin-provided flags to the generic ones */
if (at_pflags == MM_PORT_SERIAL_AT_FLAG_NONE) {
if (mm_kernel_device_get_property_as_boolean (kernel_device, ID_MM_PORT_TYPE_AT_PRIMARY)) {
- mm_dbg ("AT port '%s/%s' flagged as primary", subsys, name);
+ mm_obj_dbg (self, "AT port '%s/%s' flagged as primary", subsys, name);
at_pflags = MM_PORT_SERIAL_AT_FLAG_PRIMARY;
} else if (mm_kernel_device_get_property_as_boolean (kernel_device, ID_MM_PORT_TYPE_AT_SECONDARY)) {
- mm_dbg ("AT port '%s/%s' flagged as secondary", subsys, name);
+ mm_obj_dbg (self, "AT port '%s/%s' flagged as secondary", subsys, name);
at_pflags = MM_PORT_SERIAL_AT_FLAG_SECONDARY;
} else if (mm_kernel_device_get_property_as_boolean (kernel_device, ID_MM_PORT_TYPE_AT_PPP)) {
- mm_dbg ("AT port '%s/%s' flagged as PPP", subsys, name);
+ mm_obj_dbg (self, "AT port '%s/%s' flagged as PPP", subsys, name);
at_pflags = MM_PORT_SERIAL_AT_FLAG_PPP;
}
}
@@ -276,8 +274,8 @@ mm_base_modem_grab_port (MMBaseModem *self,
flow_control = mm_flow_control_from_string (flow_control_tag, &inner_error);
if (flow_control == MM_FLOW_CONTROL_UNKNOWN) {
- mm_warn ("(%s/%s) unsupported flow control settings in port: %s",
- subsys, name, inner_error->message);
+ mm_obj_warn (self, "unsupported flow control settings in port %s: %s",
+ name, inner_error->message);
g_error_free (inner_error);
} else {
g_object_set (port,
@@ -346,10 +344,7 @@ mm_base_modem_grab_port (MMBaseModem *self,
/* We already filter out before all non-tty, non-net, non-cdc-wdm ports */
g_assert_not_reached ();
- mm_dbg ("(%s) type '%s' claimed by %s",
- name,
- mm_port_type_get_string (ptype),
- mm_base_modem_get_device (self));
+ mm_obj_dbg (self, "grabbed port '%s/%s'", name, mm_port_type_get_string (ptype));
/* Add it to the tracking HT.
* Note: 'key' and 'port' now owned by the HT. */
@@ -360,6 +355,9 @@ mm_base_modem_grab_port (MMBaseModem *self,
MM_PORT_KERNEL_DEVICE, kernel_device,
NULL);
+ /* Set owner ID */
+ mm_log_object_set_owner_id (MM_LOG_OBJECT (port), mm_log_object_get_id (MM_LOG_OBJECT (self)));
+
return TRUE;
}
@@ -1022,7 +1020,7 @@ initialize_ready (MMBaseModem *self,
GError *error = NULL;
if (mm_base_modem_initialize_finish (self, res, &error)) {
- mm_dbg ("modem properly initialized");
+ mm_obj_dbg (self, "modem initialized");
mm_base_modem_set_valid (self, TRUE);
return;
}
@@ -1032,8 +1030,7 @@ initialize_ready (MMBaseModem *self,
/* Even with initialization errors, we do set the state to valid, so
* that the modem gets exported and the failure notified to the user.
*/
- mm_dbg ("Couldn't finish initialization in the current state: '%s'",
- error->message);
+ mm_obj_dbg (self, "couldn't finish initialization in the current state: '%s'", error->message);
g_error_free (error);
mm_base_modem_set_valid (self, TRUE);
return;
@@ -1041,7 +1038,7 @@ initialize_ready (MMBaseModem *self,
/* Really fatal, we cannot even export the failed modem (e.g. error before
* even trying to enable the Modem interface */
- mm_warn ("couldn't initialize the modem: '%s'", error->message);
+ mm_obj_warn (self, "couldn't initialize: '%s'", error->message);
g_error_free (error);
}
@@ -1049,11 +1046,10 @@ static inline void
log_port (MMBaseModem *self, MMPort *port, const char *desc)
{
if (port) {
- mm_dbg ("(%s) %s/%s %s",
- self->priv->device,
- mm_port_subsys_get_string (mm_port_get_subsys (port)),
- mm_port_get_device (port),
- desc);
+ mm_obj_dbg (self, "%s/%s %s",
+ mm_port_subsys_get_string (mm_port_get_subsys (port)),
+ mm_port_get_device (port),
+ desc);
}
}
@@ -1474,9 +1470,9 @@ static void
cleanup_modem_port (MMBaseModem *self,
MMPort *port)
{
- mm_dbg ("cleaning up port '%s/%s'...",
- mm_port_subsys_get_string (mm_port_get_subsys (MM_PORT (port))),
- mm_port_get_device (MM_PORT (port)));
+ mm_obj_dbg (self, "cleaning up port '%s/%s'...",
+ mm_port_subsys_get_string (mm_port_get_subsys (MM_PORT (port))),
+ mm_port_get_device (MM_PORT (port)));
/* Cleanup for serial ports */
if (MM_IS_PORT_SERIAL (port)) {
@@ -1522,6 +1518,17 @@ teardown_ports_table (MMBaseModem *self)
/*****************************************************************************/
+static gchar *
+log_object_build_id (MMLogObject *_self)
+{
+ MMBaseModem *self;
+
+ self = MM_BASE_MODEM (_self);
+ return g_strdup_printf ("modem%u", self->priv->dbus_id);
+}
+
+/*****************************************************************************/
+
static void
mm_base_modem_init (MMBaseModem *self)
{
@@ -1652,9 +1659,7 @@ finalize (GObject *object)
g_assert (!self->priv->enable_tasks);
g_assert (!self->priv->disable_tasks);
- mm_dbg ("Modem (%s) '%s' completely disposed",
- self->priv->plugin,
- self->priv->device);
+ mm_obj_dbg (self, "completely disposed");
g_free (self->priv->device);
g_strfreev (self->priv->drivers);
@@ -1704,6 +1709,12 @@ dispose (GObject *object)
}
static void
+log_object_iface_init (MMLogObjectInterface *iface)
+{
+ iface->build_id = log_object_build_id;
+}
+
+static void
mm_base_modem_class_init (MMBaseModemClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);