This let's the incoming connection being handled through the agent. If
no agent is present, nothing will happen and the incoming connection
request will be ignored.
---
 include/peer.h |  1 +
 src/peer.c     | 11 ++++++++++-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/include/peer.h b/include/peer.h
index dd118cd..2463066 100644
--- a/include/peer.h
+++ b/include/peer.h
@@ -67,6 +67,7 @@ void connman_peer_set_sub_device(struct connman_peer *peer,
 void connman_peer_set_as_master(struct connman_peer *peer, bool master);
 int connman_peer_set_state(struct connman_peer *peer,
                                        enum connman_peer_state new_state);
+int connman_peer_request_connection(struct connman_peer *peer);
 
 int connman_peer_register(struct connman_peer *peer);
 void connman_peer_unregister(struct connman_peer *peer);
diff --git a/src/peer.c b/src/peer.c
index 866a9ac..7e733d3 100644
--- a/src/peer.c
+++ b/src/peer.c
@@ -493,7 +493,9 @@ static void request_authorization_cb(struct connman_peer 
*peer,
 
        if (error) {
                if (g_strcmp0(error,
-                               "net.connman.Agent.Error.Canceled") == 0) {
+                               "net.connman.Agent.Error.Canceled") == 0 ||
+                       g_strcmp0(error,
+                               "net.connman.Agent.Error.Rejected") == 0) {
                        err = -EINVAL;
                        goto out;
                }
@@ -828,6 +830,13 @@ int connman_peer_set_state(struct connman_peer *peer,
        return 0;
 }
 
+int connman_peer_request_connection(struct connman_peer *peer)
+{
+       return __connman_agent_request_peer_authorization(peer,
+                                       request_authorization_cb, false,
+                                       NULL, NULL);
+}
+
 static void peer_up(struct connman_ipconfig *ipconfig, const char *ifname)
 {
        DBG("%s up", ifname);
-- 
1.8.5.5

_______________________________________________
connman mailing list
connman@connman.net
https://lists.connman.net/mailman/listinfo/connman

Reply via email to