[PATCH 10/16] gsupplicant: Add an helper to find a peer via its identifier

2014-08-06 Thread Tomasz Bursztyka
Wifi plugin will need to find the peer to check whether it supports WPS
PBC or PIN method while connectin, and action upon it.
---
 gsupplicant/gsupplicant.h |  2 ++
 gsupplicant/supplicant.c  | 45 +++--
 2 files changed, 29 insertions(+), 18 deletions(-)

diff --git a/gsupplicant/gsupplicant.h b/gsupplicant/gsupplicant.h
index 6c22aa4..90752d3 100644
--- a/gsupplicant/gsupplicant.h
+++ b/gsupplicant/gsupplicant.h
@@ -266,6 +266,8 @@ int g_supplicant_interface_set_country(GSupplicantInterface 
*interface,
 bool g_supplicant_interface_has_p2p(GSupplicantInterface *interface);
 int g_supplicant_interface_set_p2p_device_config(GSupplicantInterface 
*interface,
const char *device_name);
+GSupplicantPeer *g_supplicant_interface_peer_lookup(GSupplicantInterface 
*interface,
+   const char *identifier);
 
 /* Network and Peer API */
 struct _GSupplicantNetwork;
diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c
index a371a88..178b4da 100644
--- a/gsupplicant/supplicant.c
+++ b/gsupplicant/supplicant.c
@@ -3159,6 +3159,29 @@ int 
g_supplicant_interface_set_p2p_device_config(GSupplicantInterface *interface
return ret;
 }
 
+static gboolean peer_lookup_by_identifier(gpointer key, gpointer value,
+   gpointer user_data)
+{
+   const GSupplicantPeer *peer = value;
+   const char *identifier = user_data;
+
+   if (!g_strcmp0(identifier, peer-identifier))
+   return TRUE;
+
+   return FALSE;
+}
+
+GSupplicantPeer *g_supplicant_interface_peer_lookup(GSupplicantInterface 
*interface,
+   const char *identifier)
+{
+   GSupplicantPeer *peer;
+
+   peer = g_hash_table_find(interface-peer_table,
+   peer_lookup_by_identifier,
+   (void *) identifier);
+   return peer;
+}
+
 struct interface_data {
GSupplicantInterface *interface;
char *path; /* Interface path cannot be taken from interface (above) as
@@ -4676,18 +4699,6 @@ static void interface_p2p_connect_params(DBusMessageIter 
*iter, void *user_data)
supplicant_dbus_dict_close(iter, dict);
 }
 
-static gboolean peer_lookup_by_identifier(gpointer key, gpointer value,
-   gpointer user_data)
-{
-   const GSupplicantPeer *peer = value;
-   const char *identifier = user_data;
-
-   if (!g_strcmp0(identifier, peer-identifier))
-   return TRUE;
-
-   return FALSE;
-}
-
 int g_supplicant_interface_p2p_connect(GSupplicantInterface *interface,
GSupplicantPeerParams *peer_params,
GSupplicantInterfaceCallback callback,
@@ -4704,9 +4715,8 @@ int 
g_supplicant_interface_p2p_connect(GSupplicantInterface *interface,
if (!peer_params-path) {
GSupplicantPeer *peer;
 
-   peer = g_hash_table_find(interface-peer_table,
-   peer_lookup_by_identifier,
-   (void *) peer_params-identifier);
+   peer = g_supplicant_interface_peer_lookup(interface,
+   peer_params-identifier);
if (!peer)
return -ENODEV;
 
@@ -4745,9 +4755,8 @@ int 
g_supplicant_interface_p2p_disconnect(GSupplicantInterface *interface,
if (!interface-p2p_support)
return -ENOTSUP;
 
-   peer = g_hash_table_find(interface-peer_table,
-   peer_lookup_by_identifier,
-   (void *) peer_params-identifier);
+   peer = g_supplicant_interface_peer_lookup(interface,
+   peer_params-identifier);
if (!peer)
return -ENODEV;
 
-- 
1.8.5.5

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


[PATCH 10/16] gsupplicant: Add an helper to find a peer via its identifier

2014-08-01 Thread Tomasz Bursztyka
Wifi plugin will need to find the peer to check whether it supports WPS
PBC or PIN method while connectin, and action upon it.
---
 gsupplicant/gsupplicant.h |  2 ++
 gsupplicant/supplicant.c  | 45 +++--
 2 files changed, 29 insertions(+), 18 deletions(-)

diff --git a/gsupplicant/gsupplicant.h b/gsupplicant/gsupplicant.h
index ff56001..a6b2db7 100644
--- a/gsupplicant/gsupplicant.h
+++ b/gsupplicant/gsupplicant.h
@@ -265,6 +265,8 @@ int g_supplicant_interface_set_country(GSupplicantInterface 
*interface,
 bool g_supplicant_interface_has_p2p(GSupplicantInterface *interface);
 int g_supplicant_interface_set_p2p_device_config(GSupplicantInterface 
*interface,
const char *device_name);
+GSupplicantPeer *g_supplicant_interface_peer_lookup(GSupplicantInterface 
*interface,
+   const char *identifier);
 
 /* Network and Peer API */
 struct _GSupplicantNetwork;
diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c
index 7fd9dcd..cfb6754 100644
--- a/gsupplicant/supplicant.c
+++ b/gsupplicant/supplicant.c
@@ -3171,6 +3171,29 @@ int 
g_supplicant_interface_set_p2p_device_config(GSupplicantInterface *interface
return ret;
 }
 
+static gboolean peer_lookup_by_identifier(gpointer key, gpointer value,
+   gpointer user_data)
+{
+   const GSupplicantPeer *peer = value;
+   const char *identifier = user_data;
+
+   if (!g_strcmp0(identifier, peer-identifier))
+   return TRUE;
+
+   return FALSE;
+}
+
+GSupplicantPeer *g_supplicant_interface_peer_lookup(GSupplicantInterface 
*interface,
+   const char *identifier)
+{
+   GSupplicantPeer *peer;
+
+   peer = g_hash_table_find(interface-peer_table,
+   peer_lookup_by_identifier,
+   (void *) identifier);
+   return peer;
+}
+
 struct interface_data {
GSupplicantInterface *interface;
char *path; /* Interface path cannot be taken from interface (above) as
@@ -4685,18 +4708,6 @@ static void interface_p2p_connect_params(DBusMessageIter 
*iter, void *user_data)
supplicant_dbus_dict_close(iter, dict);
 }
 
-static gboolean peer_lookup_by_identifier(gpointer key, gpointer value,
-   gpointer user_data)
-{
-   const GSupplicantPeer *peer = value;
-   const char *identifier = user_data;
-
-   if (!g_strcmp0(identifier, peer-identifier))
-   return TRUE;
-
-   return FALSE;
-}
-
 int g_supplicant_interface_p2p_connect(GSupplicantInterface *interface,
GSupplicantPeerParams *peer_params,
GSupplicantInterfaceCallback callback,
@@ -4713,9 +4724,8 @@ int 
g_supplicant_interface_p2p_connect(GSupplicantInterface *interface,
if (!peer_params-path) {
GSupplicantPeer *peer;
 
-   peer = g_hash_table_find(interface-peer_table,
-   peer_lookup_by_identifier,
-   (void *) peer_params-identifier);
+   peer = g_supplicant_interface_peer_lookup(interface,
+   peer_params-identifier);
if (!peer)
return -ENODEV;
 
@@ -4754,9 +4764,8 @@ int 
g_supplicant_interface_p2p_disconnect(GSupplicantInterface *interface,
if (!interface-p2p_support)
return -ENOTSUP;
 
-   peer = g_hash_table_find(interface-peer_table,
-   peer_lookup_by_identifier,
-   (void *) peer_params-identifier);
+   peer = g_supplicant_interface_peer_lookup(interface,
+   peer_params-identifier);
if (!peer)
return -ENODEV;
 
-- 
1.8.5.5

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