diff options
author | Patrik Flykt <patrik.flykt@linux.intel.com> | 2013-03-27 13:53:58 +0200 |
---|---|---|
committer | Patrik Flykt <patrik.flykt@linux.intel.com> | 2013-04-04 10:25:52 +0300 |
commit | 475dfafa73b3bb7a73fec1864e4898ddd7cb0fa2 (patch) | |
tree | c5c597fb8eaaf9a3c8ab175ec1bde61474c07a0c /client | |
parent | f3778ed1cbec15bdf3b1272a803b2ca3d892357d (diff) | |
download | connman-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.c | 48 |
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; } |