vpn-agent: Routine to add username and password into agent dict
authorJukka Rissanen <jukka.rissanen@linux.intel.com>
Fri, 30 Nov 2012 09:30:43 +0000 (11:30 +0200)
committerPatrik Flykt <patrik.flykt@linux.intel.com>
Fri, 30 Nov 2012 13:01:19 +0000 (15:01 +0200)
vpn/vpn-agent.c
vpn/vpn-agent.h

index 0281764..f1cfb1e 100644 (file)
@@ -98,3 +98,48 @@ void vpn_agent_append_host_and_name(DBusMessageIter *iter,
                                request_input_append_name,
                                provider);
 }
+
+struct user_info_data {
+       struct vpn_provider *provider;
+       const char *username_str;
+};
+
+static void request_input_append_user_info(DBusMessageIter *iter,
+                                               void *user_data)
+{
+       struct user_info_data *data = user_data;
+       struct vpn_provider *provider = data->provider;
+       const char *str = "string";
+
+       connman_dbus_dict_append_basic(iter, "Type",
+                               DBUS_TYPE_STRING, &str);
+       str = "mandatory";
+       connman_dbus_dict_append_basic(iter, "Requirement",
+                               DBUS_TYPE_STRING, &str);
+
+       if (data->username_str != NULL) {
+               str = vpn_provider_get_string(provider, data->username_str);
+               if (str != NULL)
+                       connman_dbus_dict_append_basic(iter, "Value",
+                                               DBUS_TYPE_STRING, &str);
+       }
+}
+
+void vpn_agent_append_user_info(DBusMessageIter *iter,
+                               struct vpn_provider *provider,
+                               const char *username_str)
+{
+       struct user_info_data data = {
+               .provider = provider,
+               .username_str = username_str
+       };
+
+       connman_dbus_dict_append_dict(iter, "Username",
+                               request_input_append_user_info,
+                               &data);
+
+       data.username_str = NULL;
+       connman_dbus_dict_append_dict(iter, "Password",
+                               request_input_append_user_info,
+                               &data);
+}
index 41b7f8c..821d759 100644 (file)
@@ -35,6 +35,9 @@ extern "C" {
 void vpn_agent_append_host_and_name(DBusMessageIter *iter,
                                struct vpn_provider *provider);
 connman_bool_t vpn_agent_check_reply_has_dict(DBusMessage *reply);
+void vpn_agent_append_user_info(DBusMessageIter *iter,
+                               struct vpn_provider *provider,
+                               const char *username_str);
 
 #ifdef __cplusplus
 }