Add login support for captive/wispr portal 02/171302/7 accepted/tizen/unified/20180320.141401 submit/tizen/20180320.043504
authorMilind Murhekar <m.murhekar@samsung.com>
Wed, 28 Feb 2018 11:41:26 +0000 (17:11 +0530)
committerMilind Murhekar <m.murhekar@samsung.com>
Mon, 19 Mar 2018 05:36:24 +0000 (11:06 +0530)
Description: This patch sets the captive/wispr portal
login credentials via connman-agent.

Change-Id: I518099ba6b86c6d0d3c2e539a10d44fd1b071d09
Signed-off-by: Milind Murhekar <m.murhekar@samsung.com>
packaging/net-config.spec
src/wifi-agent.c

index 7734ddd..a8aa2d3 100755 (executable)
@@ -1,6 +1,6 @@
 Name:          net-config
 Summary:       TIZEN Network Configuration service
-Version:       1.1.126
+Version:       1.1.127
 Release:       3
 Group:         System/Network
 License:       Apache-2.0
index b31bc21..8d4aa5e 100755 (executable)
 #define NETCONFIG_AGENT_FIELD_WPS                              "WPS"
 #define NETCONFIG_AGENT_FIELD_WPS_PBC                  "WPS_PBC"
 #define NETCONFIG_AGENT_FIELD_WPS_PIN                  "WPS_PIN"
+#if defined TIZEN_CAPTIVE_PORTAL
+#define NETCONFIG_AGENT_FIELD_USERNAME                 "Username"
+#define NETCONFIG_AGENT_FIELD_PASSWORD                 "Password"
+#endif
 
 #define NETCONFIG_AGENT_ERR_CONNECT_FAILED             "connect-failed"
 
@@ -50,6 +54,10 @@ struct netconfig_wifi_agent {
        char *identity;
        char *passphrase;
        char *wps_pin;
+#if defined TIZEN_CAPTIVE_PORTAL
+       char *username;
+       char *password;
+#endif
        gboolean wps_pbc;
 };
 
@@ -63,12 +71,20 @@ static void __netconfig_agent_clear_fields(void)
        g_free(agent.identity);
        g_free(agent.passphrase);
        g_free(agent.wps_pin);
+#if defined TIZEN_CAPTIVE_PORTAL
+       g_free(agent.username);
+       g_free(agent.password);
+#endif
 
        agent.ssid = NULL;
        agent.name = NULL;
        agent.identity = NULL;
        agent.passphrase = NULL;
        agent.wps_pin = NULL;
+#if defined TIZEN_CAPTIVE_PORTAL
+       agent.username = NULL;
+       agent.password = NULL;
+#endif
        agent.wps_pbc = FALSE;
 }
 
@@ -264,6 +280,22 @@ gboolean handle_set_field(NetConnmanAgent *connman_agent,
 
                                DBG("Field [%s] - [%s]", field, agent.identity);
                        }
+#if defined TIZEN_CAPTIVE_PORTAL
+               } else if (g_strcmp0(field, NETCONFIG_AGENT_FIELD_USERNAME) == 0) {
+                       if (g_variant_is_of_type(value, G_VARIANT_TYPE_STRING)) {
+                               agent.username = g_strdup(g_variant_get_string(value, NULL));
+                               updated = TRUE;
+
+                               DBG("Field [%s] - [%s]", field, agent.username);
+                       }
+               } else if (g_strcmp0(field, NETCONFIG_AGENT_FIELD_PASSWORD) == 0) {
+                       if (g_variant_is_of_type(value, G_VARIANT_TYPE_STRING)) {
+                               agent.password = g_strdup(g_variant_get_string(value, NULL));
+                               updated = TRUE;
+
+                               DBG("Field [%s] - [%s]", field, agent.password);
+                       }
+#endif
                }
        }
 
@@ -372,6 +404,20 @@ gboolean handle_request_input(NetConnmanAgent *connman_agent,
 
                        updated = TRUE;
                        DBG("Settings [%s] - [%s]", field, agent.identity);
+#if defined TIZEN_CAPTIVE_PORTAL
+               } else if (g_strcmp0(field, NETCONFIG_AGENT_FIELD_USERNAME) == 0 &&
+                               agent.username != NULL) {
+                       g_variant_builder_add(builder, "{sv}", NETCONFIG_AGENT_FIELD_USERNAME, g_variant_new_string(agent.username));
+
+                       updated = TRUE;
+                       DBG("Settings [%s] - [%s]", field, agent.username);
+               } else if (g_strcmp0(field, NETCONFIG_AGENT_FIELD_PASSWORD) == 0 &&
+                               agent.password != NULL) {
+                       g_variant_builder_add(builder, "{sv}", NETCONFIG_AGENT_FIELD_PASSWORD, g_variant_new_string(agent.password));
+
+                       updated = TRUE;
+                       DBG("Settings [%s] - [%s]", field, agent.password);
+#endif
                }
        }