summaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
authorPatrik Flykt <patrik.flykt@linux.intel.com>2013-03-27 13:53:58 +0200
committerPatrik Flykt <patrik.flykt@linux.intel.com>2013-04-04 10:25:52 +0300
commit475dfafa73b3bb7a73fec1864e4898ddd7cb0fa2 (patch)
treec5c597fb8eaaf9a3c8ab175ec1bde61474c07a0c /client
parentf3778ed1cbec15bdf3b1272a803b2ca3d892357d (diff)
downloadconnman-475dfafa73b3bb7a73fec1864e4898ddd7cb0fa2.tar.gz
connman-475dfafa73b3bb7a73fec1864e4898ddd7cb0fa2.tar.bz2
connman-475dfafa73b3bb7a73fec1864e4898ddd7cb0fa2.zip
client: Use D-Bus helper functions for service connect and disconnect
Diffstat (limited to 'client')
-rw-r--r--client/commands.c48
1 files changed, 39 insertions, 9 deletions
diff --git a/client/commands.c b/client/commands.c
index 017b98d1..74946515 100644
--- a/client/commands.c
+++ b/client/commands.c
@@ -236,9 +236,24 @@ static int cmd_scan(char *args[], int num, struct option *options)
return 0;
}
+static void connect_return(DBusMessageIter *iter, const char *error,
+ void *user_data)
+{
+ char *path = user_data;
+
+ if (error == NULL) {
+ char *str = strrchr(path, '/');
+ str++;
+ fprintf(stdout, "Connected %s\n", str);
+ } else
+ fprintf(stderr, "Error %s: %s\n", path, error);
+
+ g_free(user_data);
+}
+
static int cmd_connect(char *args[], int num, struct option *options)
{
- int err;
+ char *path;
if (num > 2)
return -E2BIG;
@@ -246,16 +261,30 @@ static int cmd_connect(char *args[], int num, struct option *options)
if (num < 2)
return -EINVAL;
- err = connect_service(connection, args[1]);
- if (err == 0)
- printf("Connected\n");
+ path = g_strdup_printf("/net/connman/service/%s", args[1]);
+ return __connmanctl_dbus_method_call(connection, path,
+ "net.connman.Service", "Connect",
+ connect_return, path, DBUS_TYPE_INVALID);
+}
- return 0;
+static void disconnect_return(DBusMessageIter *iter, const char *error,
+ void *user_data)
+{
+ char *path = user_data;
+
+ if (error == NULL) {
+ char *str = strrchr(path, '/');
+ str++;
+ fprintf(stdout, "Disconnected %s\n", str);
+ } else
+ fprintf(stderr, "Error %s: %s\n", path, error);
+
+ g_free(user_data);
}
static int cmd_disconnect(char *args[], int num, struct option *options)
{
- int err;
+ char *path;
if (num > 2)
return -E2BIG;
@@ -263,9 +292,10 @@ static int cmd_disconnect(char *args[], int num, struct option *options)
if (num < 2)
return -EINVAL;
- err = disconnect_service(connection, args[1]);
- if (err == 0)
- printf("Disconnected\n");
+ path = g_strdup_printf("/net/connman/service/%s", args[1]);
+ return __connmanctl_dbus_method_call(connection, path,
+ "net.connman.Service", "Disconnect",
+ disconnect_return, path, DBUS_TYPE_INVALID);
return 0;
}