---
 include/network.h |    3 ++-
 src/network.c     |   25 +++++++++++++++++++++++++
 2 files changed, 27 insertions(+), 1 deletions(-)

diff --git a/include/network.h b/include/network.h
index 91154c8..2f79163 100644
--- a/include/network.h
+++ b/include/network.h
@@ -126,7 +126,8 @@ connman_uint16_t connman_network_get_frequency(struct 
connman_network *network);
 int connman_network_set_wifi_channel(struct connman_network *network,
                                        connman_uint16_t channel);
 connman_uint16_t connman_network_get_wifi_channel(struct connman_network 
*network);
-
+int connman_network_set_wpspin(struct connman_network *network,
+                                       const char *wpspin);
 int connman_network_set_string(struct connman_network *network,
                                        const char *key, const char *value);
 const char *connman_network_get_string(struct connman_network *network,
diff --git a/src/network.c b/src/network.c
index 5ae5a12..9b81be6 100644
--- a/src/network.c
+++ b/src/network.c
@@ -33,6 +33,7 @@
 
 #include <errno.h>
 #include <string.h>
+#include <ctype.h>
 
 #include "connman.h"
 
@@ -1766,6 +1767,30 @@ connman_uint16_t connman_network_get_wifi_channel(struct 
connman_network *networ
        return network->wifi.channel;
 }
 
+int connman_network_set_wpspin(struct connman_network *network,
+                                               const char *wpspin)
+{
+       guint i;
+       int err = 0;
+
+       /* A WPS PIN is always 8 chars length,
+        * its content is in digit representation.
+        */
+       if (strlen(wpspin) == 8) {
+               for (i = 0; i < 8; i++)
+                       if (!isdigit((unsigned char) wpspin[i]))
+                               err = -ENOKEY;
+       } else
+               err = -ENOKEY;
+
+       if (err >= 0) {
+               g_free(network->wifi.pin_wps);
+               network->wifi.pin_wps = g_strdup(wpspin);
+       }
+
+       return err;
+}
+
 /**
  * connman_network_set_string:
  * @network: network structure
-- 
1.7.5.4

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

Reply via email to