diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2020-03-29 16:07:11 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2020-04-08 16:35:08 +0200 |
commit | c0fb9b42c02e2f3a5697ca9e5f1d814be933066d (patch) | |
tree | 5488ae5ec1c0f9e6367c39cbb942215b8eb5b1c1 /src/mm-base-bearer.c | |
parent | ed41f969d5b80ae28e1841657c85b12ef5a29ad3 (diff) |
base-bearer: set dbus id as soon as object is created
Diffstat (limited to 'src/mm-base-bearer.c')
-rw-r--r-- | src/mm-base-bearer.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/mm-base-bearer.c b/src/mm-base-bearer.c index 81c281b0..d4e60c2b 100644 --- a/src/mm-base-bearer.c +++ b/src/mm-base-bearer.c @@ -76,6 +76,8 @@ static GParamSpec *properties[PROP_LAST]; struct _MMBaseBearerPrivate { /* The connection to the system bus */ GDBusConnection *connection; + guint dbus_id; + /* The modem which owns this BEARER */ MMBaseModem *modem; /* The path where the BEARER object is exported */ @@ -139,10 +141,9 @@ static const gchar *connection_forbidden_reason_str [CONNECTION_FORBIDDEN_REASON void mm_base_bearer_export (MMBaseBearer *self) { - static guint id = 0; gchar *path; - path = g_strdup_printf (MM_DBUS_BEARER_PREFIX "/%d", id++); + path = g_strdup_printf (MM_DBUS_BEARER_PREFIX "/%d", self->priv->dbus_id); g_object_set (self, MM_BASE_BEARER_PATH, path, NULL); @@ -1429,10 +1430,16 @@ get_property (GObject *object, static void mm_base_bearer_init (MMBaseBearer *self) { + static guint id = 0; + /* Initialize private data */ self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, MM_TYPE_BASE_BEARER, MMBaseBearerPrivate); + + /* Each bearer is given a unique id to build its own DBus path */ + self->priv->dbus_id = id++; + self->priv->status = MM_BEARER_STATUS_DISCONNECTED; self->priv->reason_3gpp = CONNECTION_FORBIDDEN_REASON_NONE; self->priv->reason_cdma = CONNECTION_FORBIDDEN_REASON_NONE; |