diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2020-03-29 16:15:00 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2020-04-08 16:35:08 +0200 |
commit | fce081bbb05f8c62926e5184263e3a33f17e7d83 (patch) | |
tree | 0f0510882f637212b8fbf6f6c5581bd76387dad1 /src/mm-base-bearer.c | |
parent | c0fb9b42c02e2f3a5697ca9e5f1d814be933066d (diff) |
base-bearer: port to use object logging
Diffstat (limited to 'src/mm-base-bearer.c')
-rw-r--r-- | src/mm-base-bearer.c | 103 |
1 files changed, 57 insertions, 46 deletions
diff --git a/src/mm-base-bearer.c b/src/mm-base-bearer.c index d4e60c2b..c74eccff 100644 --- a/src/mm-base-bearer.c +++ b/src/mm-base-bearer.c @@ -35,7 +35,7 @@ #include "mm-base-bearer.h" #include "mm-base-modem-at.h" #include "mm-base-modem.h" -#include "mm-log.h" +#include "mm-log-object.h" #include "mm-modem-helpers.h" #include "mm-bearer-stats.h" @@ -50,7 +50,10 @@ #define BEARER_CONNECTION_MONITOR_INITIAL_TIMEOUT 30 #define BEARER_CONNECTION_MONITOR_TIMEOUT 5 -G_DEFINE_TYPE (MMBaseBearer, mm_base_bearer, MM_GDBUS_TYPE_BEARER_SKELETON) +static void log_object_iface_init (MMLogObjectInterface *iface); + +G_DEFINE_TYPE_EXTENDED (MMBaseBearer, mm_base_bearer, MM_GDBUS_TYPE_BEARER_SKELETON, 0, + G_IMPLEMENT_INTERFACE (MM_TYPE_LOG_OBJECT, log_object_iface_init)) typedef enum { CONNECTION_FORBIDDEN_REASON_NONE, @@ -172,14 +175,14 @@ load_connection_status_ready (MMBaseBearer *self, if (status == MM_BEARER_CONNECTION_STATUS_UNKNOWN) { /* Only warn if not reporting an "unsupported" error */ if (!g_error_matches (error, MM_CORE_ERROR, MM_CORE_ERROR_UNSUPPORTED)) { - mm_warn ("checking if connected failed: %s", error->message); + mm_obj_warn (self, "checking if connected failed: %s", error->message); g_error_free (error); return; } /* If we're being told that connection monitoring is unsupported, just * ignore the error and remove the timeout. */ - mm_dbg ("Connection monitoring is unsupported by the device"); + mm_obj_dbg (self, "connection monitoring is unsupported by the device"); self->priv->load_connection_status_unsupported = TRUE; connection_monitor_stop (self); g_error_free (error); @@ -188,7 +191,7 @@ load_connection_status_ready (MMBaseBearer *self, /* Report connection or disconnection */ g_assert (status == MM_BEARER_CONNECTION_STATUS_CONNECTED || status == MM_BEARER_CONNECTION_STATUS_DISCONNECTED); - mm_dbg ("connection status loaded: %s", mm_bearer_connection_status_get_string (status)); + mm_obj_dbg (self, "connection status loaded: %s", mm_bearer_connection_status_get_string (status)); mm_base_bearer_report_connection_status (self, status); } @@ -284,14 +287,14 @@ reload_stats_ready (MMBaseBearer *self, if (!MM_BASE_BEARER_GET_CLASS (self)->reload_stats_finish (self, &rx_bytes, &tx_bytes, res, &error)) { /* If reloading stats fails, warn about it and don't update anything */ if (!g_error_matches (error, MM_CORE_ERROR, MM_CORE_ERROR_UNSUPPORTED)) { - mm_warn ("Reloading stats failed: %s", error->message); + mm_obj_warn (self, "reloading stats failed: %s", error->message); g_error_free (error); return; } /* If we're being told that reloading stats is unsupported, just ignore * the error and update oly the duration timer. */ - mm_dbg ("Reloading stats is unsupported by the device"); + mm_obj_dbg (self, "reloading stats is unsupported by the device"); self->priv->reload_stats_unsupported = TRUE; rx_bytes = 0; tx_bytes = 0; @@ -414,7 +417,7 @@ bearer_update_status_connected (MMBaseBearer *self, * the bearer when ownership of the TTY is given back to MM. */ if ((ipv4_config && mm_bearer_ip_config_get_method (ipv4_config) == MM_BEARER_IP_METHOD_PPP) || (ipv6_config && mm_bearer_ip_config_get_method (ipv6_config) == MM_BEARER_IP_METHOD_PPP)) { - mm_dbg ("PPP is required for connection, will ignore disconnection reports"); + mm_obj_dbg (self, "PPP is required for connection, will ignore disconnection reports"); self->priv->ignore_disconnection_reports = TRUE; } @@ -451,7 +454,7 @@ deferred_3gpp_unregistration_cb (MMBaseBearer *self) g_warn_if_fail (self->priv->reason_3gpp == CONNECTION_FORBIDDEN_REASON_UNREGISTERED); self->priv->deferred_3gpp_unregistration_id = 0; - mm_dbg ("Forcing bearer disconnection, not registered in 3GPP network"); + mm_obj_dbg (self, "forcing bearer disconnection, not registered in 3GPP network"); mm_base_bearer_disconnect_force (self); return G_SOURCE_REMOVE; } @@ -505,7 +508,7 @@ modem_3gpp_registration_state_changed (MMIfaceModem3gpp *modem, /* Modem is roaming and roaming not allowed, report right away */ if (self->priv->reason_3gpp == CONNECTION_FORBIDDEN_REASON_ROAMING) { - mm_dbg ("Bearer not allowed to connect, registered in roaming 3GPP network"); + mm_obj_dbg (self, "bearer not allowed to connect, registered in roaming 3GPP network"); reset_deferred_unregistration (self); mm_base_bearer_disconnect_force (self); return; @@ -513,7 +516,7 @@ modem_3gpp_registration_state_changed (MMIfaceModem3gpp *modem, /* Modem is registered under emergency services only? */ if (self->priv->reason_3gpp == CONNECTION_FORBIDDEN_REASON_EMERGENCY_ONLY) { - mm_dbg ("Bearer not allowed to connect, emergency services only"); + mm_obj_dbg (self, "bearer not allowed to connect, emergency services only"); reset_deferred_unregistration (self); mm_base_bearer_disconnect_force (self); return; @@ -527,13 +530,13 @@ modem_3gpp_registration_state_changed (MMIfaceModem3gpp *modem, /* If the bearer is not connected, report right away */ if (self->priv->status != MM_BEARER_STATUS_CONNECTED) { - mm_dbg ("Bearer not allowed to connect, not registered in 3GPP network"); + mm_obj_dbg (self, "bearer not allowed to connect, not registered in 3GPP network"); mm_base_bearer_disconnect_force (self); return; } /* Otherwise, setup the new timeout */ - mm_dbg ("Connected bearer not registered in 3GPP network"); + mm_obj_dbg (self, "connected bearer not registered in 3GPP network"); self->priv->deferred_3gpp_unregistration_id = g_timeout_add_seconds (BEARER_DEFERRED_UNREGISTRATION_TIMEOUT, (GSourceFunc) deferred_3gpp_unregistration_cb, @@ -550,7 +553,7 @@ deferred_cdma_unregistration_cb (MMBaseBearer *self) g_warn_if_fail (self->priv->reason_cdma == CONNECTION_FORBIDDEN_REASON_UNREGISTERED); self->priv->deferred_cdma_unregistration_id = 0; - mm_dbg ("Forcing bearer disconnection, not registered in CDMA network"); + mm_obj_dbg (self, "forcing bearer disconnection, not registered in CDMA network"); mm_base_bearer_disconnect_force (self); return G_SOURCE_REMOVE; } @@ -592,7 +595,7 @@ modem_cdma_registration_state_changed (MMIfaceModemCdma *modem, /* Modem is roaming and roaming not allowed, report right away */ if (self->priv->reason_cdma == CONNECTION_FORBIDDEN_REASON_ROAMING) { - mm_dbg ("Bearer not allowed to connect, registered in roaming CDMA network"); + mm_obj_dbg (self, "bearer not allowed to connect, registered in roaming CDMA network"); reset_deferred_unregistration (self); mm_base_bearer_disconnect_force (self); return; @@ -606,13 +609,13 @@ modem_cdma_registration_state_changed (MMIfaceModemCdma *modem, /* If the bearer is not connected, report right away */ if (self->priv->status != MM_BEARER_STATUS_CONNECTED) { - mm_dbg ("Bearer not allowed to connect, not registered in CDMA network"); + mm_obj_dbg (self, "bearer not allowed to connect, not registered in CDMA network"); mm_base_bearer_disconnect_force (self); return; } /* Otherwise, setup the new timeout */ - mm_dbg ("Connected bearer not registered in CDMA network"); + mm_obj_dbg (self, "connected bearer not registered in CDMA network"); self->priv->deferred_cdma_unregistration_id = g_timeout_add_seconds (BEARER_DEFERRED_UNREGISTRATION_TIMEOUT, (GSourceFunc) deferred_cdma_unregistration_cb, @@ -701,14 +704,11 @@ disconnect_after_cancel_ready (MMBaseBearer *self, GError *error = NULL; if (!MM_BASE_BEARER_GET_CLASS (self)->disconnect_finish (self, res, &error)) { - mm_warn ("Error disconnecting bearer '%s': '%s'. " - "Will assume disconnected anyway.", - self->priv->path, - error->message); + mm_obj_warn (self, "error disconnecting: %s; will assume disconnected anyway", error->message); g_error_free (error); } else - mm_dbg ("Disconnected bearer '%s'", self->priv->path); + mm_obj_dbg (self, "disconnected bearer '%s'", self->priv->path); /* Report disconnection to the bearer object using class method * mm_bearer_report_connection_status. This gives subclass implementations a @@ -730,9 +730,7 @@ connect_ready (MMBaseBearer *self, /* NOTE: connect() implementations *MUST* handle cancellations themselves */ result = MM_BASE_BEARER_GET_CLASS (self)->connect_finish (self, res, &error); if (!result) { - mm_dbg ("Couldn't connect bearer '%s': '%s'", - self->priv->path, - error->message); + mm_obj_dbg (self, "couldn't connect: '%s'", error->message); if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { /* Will launch disconnection */ launch_disconnect = TRUE; @@ -741,14 +739,14 @@ connect_ready (MMBaseBearer *self, } /* Handle cancellations detected after successful connection */ else if (g_cancellable_is_cancelled (self->priv->connect_cancellable)) { - mm_dbg ("Connected bearer '%s', but need to disconnect", self->priv->path); + mm_obj_dbg (self, "connected, but need to disconnect"); mm_bearer_connect_result_unref (result); error = g_error_new (G_IO_ERROR, G_IO_ERROR_CANCELLED, "Bearer got connected, but had to disconnect after cancellation request"); launch_disconnect = TRUE; } else { - mm_dbg ("Connected bearer '%s'", self->priv->path); + mm_obj_dbg (self, "connected"); /* Update bearer and interface status */ bearer_update_status_connected ( @@ -864,7 +862,7 @@ mm_base_bearer_connect (MMBaseBearer *self, } /* Connecting! */ - mm_dbg ("Connecting bearer '%s'", self->priv->path); + mm_obj_dbg (self, "connecting..."); self->priv->connect_cancellable = g_cancellable_new (); bearer_update_status (self, MM_BEARER_STATUS_CONNECTING); bearer_reset_interface_stats (self); @@ -936,7 +934,7 @@ handle_connect (MMBaseBearer *self, MM_BASE_BEARER_MODEM, &ctx->modem, NULL); - mm_dbg ("User request to connect bearer '%s'", self->priv->path); + mm_obj_dbg (self, "user request to connect"); mm_base_modem_authorize (ctx->modem, invocation, @@ -965,12 +963,12 @@ disconnect_ready (MMBaseBearer *self, GError *error = NULL; if (!MM_BASE_BEARER_GET_CLASS (self)->disconnect_finish (self, res, &error)) { - mm_dbg ("Couldn't disconnect bearer '%s': %s", self->priv->path, error->message); + mm_obj_dbg (self, "couldn't disconnect: %s", error->message); bearer_update_status (self, MM_BEARER_STATUS_CONNECTED); g_task_return_error (task, error); } else { - mm_dbg ("Disconnected bearer '%s'", self->priv->path); + mm_obj_dbg (self, "disconnected"); bearer_update_status (self, MM_BEARER_STATUS_DISCONNECTED); g_task_return_boolean (task, TRUE); } @@ -988,8 +986,7 @@ status_changed_complete_disconnect (MMBaseBearer *self, if (self->priv->status != MM_BEARER_STATUS_DISCONNECTED) return; - mm_dbg ("Disconnected bearer '%s' after cancelling previous connect request", - self->priv->path); + mm_obj_dbg (self, "disconnected after cancelling previous connect request"); g_signal_handler_disconnect (self, self->priv->disconnect_signal_handler); self->priv->disconnect_signal_handler = 0; @@ -1038,7 +1035,7 @@ mm_base_bearer_disconnect (MMBaseBearer *self, return; } - mm_dbg ("Disconnecting bearer '%s'", self->priv->path); + mm_obj_dbg (self, "disconnecting..."); /* If currently connecting, try to cancel that operation, and wait to get * disconnected. */ @@ -1129,7 +1126,7 @@ handle_disconnect (MMBaseBearer *self, MM_BASE_BEARER_MODEM, &ctx->modem, NULL); - mm_dbg ("User request to disconnect bearer '%s'", self->priv->path); + mm_obj_dbg (self, "user request to disconnect"); mm_base_modem_authorize (ctx->modem, invocation, @@ -1160,9 +1157,7 @@ base_bearer_dbus_export (MMBaseBearer *self) self->priv->connection, self->priv->path, &error)) { - mm_warn ("couldn't export BEARER at '%s': '%s'", - self->priv->path, - error->message); + mm_obj_warn (self, "couldn't export to bus: %s", error->message); g_error_free (error); } } @@ -1175,7 +1170,7 @@ base_bearer_dbus_unexport (MMBaseBearer *self) path = g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (self)); /* Only unexport if currently exported */ if (path) { - mm_dbg ("Removing from DBus bearer at '%s'", path); + mm_obj_dbg (self, "removing from bus"); g_dbus_interface_skeleton_unexport (G_DBUS_INTERFACE_SKELETON (self)); } } @@ -1223,14 +1218,11 @@ disconnect_force_ready (MMBaseBearer *self, GError *error = NULL; if (!MM_BASE_BEARER_GET_CLASS (self)->disconnect_finish (self, res, &error)) { - mm_warn ("Error disconnecting bearer '%s': '%s'. " - "Will assume disconnected anyway.", - self->priv->path, - error->message); + mm_obj_warn (self, "error disconnecting: %s; will assume disconnected anyway", error->message); g_error_free (error); } else - mm_dbg ("Disconnected bearer '%s'", self->priv->path); + mm_obj_dbg (self, "disconnected"); /* Report disconnection to the bearer object using class method * mm_bearer_report_connection_status. This gives subclass implementations a @@ -1247,7 +1239,7 @@ mm_base_bearer_disconnect_force (MMBaseBearer *self) self->priv->status == MM_BEARER_STATUS_DISCONNECTED) return; - mm_dbg ("Forcing disconnection of bearer '%s'", self->priv->path); + mm_obj_dbg (self, "forcing disconnection"); /* If currently connecting, try to cancel that operation. */ if (self->priv->status == MM_BEARER_STATUS_CONNECTING) { @@ -1311,7 +1303,7 @@ mm_base_bearer_report_connection_status (MMBaseBearer *self, MMBearerConnectionStatus status) { if ((status == MM_BEARER_CONNECTION_STATUS_DISCONNECTED) && self->priv->ignore_disconnection_reports) { - mm_dbg ("ignoring disconnection report for bearer '%s'", self->priv->path); + mm_obj_dbg (self, "ignoring disconnection report"); return; } @@ -1320,6 +1312,17 @@ mm_base_bearer_report_connection_status (MMBaseBearer *self, /*****************************************************************************/ +static gchar * +log_object_build_id (MMLogObject *_self) +{ + MMBaseBearer *self; + + self = MM_BASE_BEARER (_self); + return g_strdup_printf ("bearer%u", self->priv->dbus_id); +} + +/*****************************************************************************/ + static void set_property (GObject *object, guint prop_id, @@ -1352,6 +1355,8 @@ set_property (GObject *object, g_clear_object (&self->priv->modem); self->priv->modem = g_value_dup_object (value); if (self->priv->modem) { + /* Set owner ID */ + mm_log_object_set_owner_id (MM_LOG_OBJECT (self), mm_log_object_get_id (MM_LOG_OBJECT (self->priv->modem))); /* Bind the modem's connection (which is set when it is exported, * and unset when unexported) to the BEARER's connection */ g_object_bind_property (self->priv->modem, MM_BASE_MODEM_CONNECTION, @@ -1492,6 +1497,12 @@ dispose (GObject *object) } static void +log_object_iface_init (MMLogObjectInterface *iface) +{ + iface->build_id = log_object_build_id; +} + +static void mm_base_bearer_class_init (MMBaseBearerClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); |