summaryrefslogtreecommitdiff
path: root/cli/mmcli-bearer.c
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2011-12-19 20:40:54 +0100
committerAleksander Morgado <aleksander@lanedo.com>2012-03-15 14:14:35 +0100
commit534aeb0c8ac83126048353b8f30128cd6f1cd92a (patch)
tree5a0c768b38ef761421765598428c353519cfb810 /cli/mmcli-bearer.c
parentcd6caf61061e18736ecf0ddd4834c1ad1fbcb7c2 (diff)
cli: always keep a MMManager around
In order to receive signals in the GDBusObjects retrieved from the GDBusObjectManagerClient, we need to keep a reference of the client around.
Diffstat (limited to 'cli/mmcli-bearer.c')
-rw-r--r--cli/mmcli-bearer.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/cli/mmcli-bearer.c b/cli/mmcli-bearer.c
index 382a0f8d..baeb2c8b 100644
--- a/cli/mmcli-bearer.c
+++ b/cli/mmcli-bearer.c
@@ -35,6 +35,8 @@
/* Context */
typedef struct {
+ MMManager *manager;
+ MMObject *object;
GCancellable *cancellable;
MMBearer *bearer;
} Context;
@@ -119,6 +121,10 @@ context_free (Context *ctx)
g_object_unref (ctx->cancellable);
if (ctx->bearer)
g_object_unref (ctx->bearer);
+ if (ctx->object)
+ g_object_unref (ctx->object);
+ if (ctx->manager)
+ g_object_unref (ctx->manager);
g_free (ctx);
}
@@ -264,7 +270,9 @@ get_bearer_ready (GObject *source,
GAsyncResult *result,
gpointer none)
{
- ctx->bearer = mmcli_get_bearer_finish (result);
+ ctx->bearer = mmcli_get_bearer_finish (result,
+ &ctx->manager,
+ &ctx->object);
if (info_flag)
g_assert_not_reached ();
@@ -317,7 +325,10 @@ mmcli_bearer_run_synchronous (GDBusConnection *connection)
/* Initialize context */
ctx = g_new0 (Context, 1);
- ctx->bearer = mmcli_get_bearer_sync (connection, bearer_str);
+ ctx->bearer = mmcli_get_bearer_sync (connection,
+ bearer_str,
+ &ctx->manager,
+ &ctx->object);
/* Request to get info from bearer? */
if (info_flag) {