Use the same command as for service, discinction will be made against
object's name: starting with peer_ or service_.
---
 client/commands.c     | 33 ++++++++++++++++++++++-----------
 client/dbus_helpers.c |  2 +-
 2 files changed, 23 insertions(+), 12 deletions(-)

diff --git a/client/commands.c b/client/commands.c
index 9c01fd5..0cacd92 100644
--- a/client/commands.c
+++ b/client/commands.c
@@ -660,6 +660,7 @@ static int connect_return(DBusMessageIter *iter, const char 
*error,
 
 static int cmd_connect(char *args[], int num, struct connman_option *options)
 {
+       const char *iface = "net.connman.Service";
        char *path;
 
        if (num > 2)
@@ -671,10 +672,14 @@ static int cmd_connect(char *args[], int num, struct 
connman_option *options)
        if (check_dbus_name(args[1]) == false)
                return -EINVAL;
 
-       path = g_strdup_printf("/net/connman/service/%s", args[1]);
+       if (g_strstr_len(args[1], 5, "peer_") == args[1]) {
+               iface = "net.connman.Peer";
+               path = g_strdup_printf("/net/connman/peer/%s", args[1]);
+       } else
+               path = g_strdup_printf("/net/connman/service/%s", args[1]);
+
        return __connmanctl_dbus_method_call(connection, CONNMAN_SERVICE, path,
-                       "net.connman.Service", "Connect",
-                       connect_return, path, NULL, NULL);
+                       iface, "Connect", connect_return, path, NULL, NULL);
 }
 
 static int disconnect_return(DBusMessageIter *iter, const char *error,
@@ -696,6 +701,7 @@ static int disconnect_return(DBusMessageIter *iter, const 
char *error,
 
 static int cmd_disconnect(char *args[], int num, struct connman_option 
*options)
 {
+       const char *iface = "net.connman.Service";
        char *path;
 
        if (num > 2)
@@ -707,10 +713,15 @@ static int cmd_disconnect(char *args[], int num, struct 
connman_option *options)
        if (check_dbus_name(args[1]) == false)
                return -EINVAL;
 
-       path = g_strdup_printf("/net/connman/service/%s", args[1]);
-       return __connmanctl_dbus_method_call(connection, CONNMAN_SERVICE, path,
-                       "net.connman.Service", "Disconnect",
-                       disconnect_return, path, NULL, NULL);
+       if (g_strstr_len(args[1], 5, "peer_") == args[1]) {
+               iface = "net.connman.Peer";
+               path = g_strdup_printf("/net/connman/peer/%s", args[1]);
+       } else
+               path = g_strdup_printf("/net/connman/service/%s", args[1]);
+
+       return __connmanctl_dbus_method_call(connection, CONNMAN_SERVICE,
+                                       path, iface, "Disconnect",
+                                       disconnect_return, path, NULL, NULL);
 }
 
 static int config_return(DBusMessageIter *iter, const char *error,
@@ -2115,10 +2126,10 @@ static const struct {
        { "scan",         "<technology>", NULL,            cmd_scan,
          "Scans for new services for given technology",
          lookup_technology_arg },
-       { "connect",      "<service>",    NULL,            cmd_connect,
-         "Connect a given service", lookup_service_arg },
-       { "disconnect",   "<service>",    NULL,            cmd_disconnect,
-         "Disconnect a given service", lookup_service_arg },
+       { "connect",      "<service/peer>", NULL,          cmd_connect,
+         "Connect a given service or peer", lookup_service_arg },
+       { "disconnect",   "<service/peer>", NULL,          cmd_disconnect,
+         "Disconnect a given service or peer", lookup_service_arg },
        { "config",       "<service>",    config_options,  cmd_config,
          "Set service configuration options", lookup_config },
        { "monitor",      "[off]",        monitor_options, cmd_monitor,
diff --git a/client/dbus_helpers.c b/client/dbus_helpers.c
index 826111f..edccf59 100644
--- a/client/dbus_helpers.c
+++ b/client/dbus_helpers.c
@@ -27,7 +27,7 @@
 #include "input.h"
 #include "dbus_helpers.h"
 
-#define TIMEOUT         60000
+#define TIMEOUT         120000
 
 void __connmanctl_dbus_print(DBusMessageIter *iter, const char *pre,
                const char *dict, const char *sep)
-- 
1.8.5.5

_______________________________________________
connman mailing list
[email protected]
https://lists.connman.net/mailman/listinfo/connman

Reply via email to