summaryrefslogtreecommitdiff
path: root/src/mm-base-bearer.c
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2020-03-29 16:15:00 +0200
committerAleksander Morgado <aleksander@aleksander.es>2020-04-08 16:35:08 +0200
commitfce081bbb05f8c62926e5184263e3a33f17e7d83 (patch)
tree0f0510882f637212b8fbf6f6c5581bd76387dad1 /src/mm-base-bearer.c
parentc0fb9b42c02e2f3a5697ca9e5f1d814be933066d (diff)
base-bearer: port to use object logging
Diffstat (limited to 'src/mm-base-bearer.c')
-rw-r--r--src/mm-base-bearer.c103
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);