---
 vpn/vpn-agent.c | 45 +++++++++++++++++++++++++++++++++++++++++++++
 vpn/vpn-agent.h |  3 +++
 2 files changed, 48 insertions(+)

diff --git a/vpn/vpn-agent.c b/vpn/vpn-agent.c
index 06ab990..d8d8cbb 100644
--- a/vpn/vpn-agent.c
+++ b/vpn/vpn-agent.c
@@ -97,3 +97,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);
+}
diff --git a/vpn/vpn-agent.h b/vpn/vpn-agent.h
index 41b7f8c..821d759 100644
--- a/vpn/vpn-agent.h
+++ b/vpn/vpn-agent.h
@@ -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
 }
-- 
1.7.11.4

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

Reply via email to