#include "connman.h"
-#define REQUEST_TIMEOUT (120 * 1000) /* 120 seconds */
-
static DBusConnection *connection = NULL;
static guint agent_watch = 0;
static gchar *agent_path = NULL;
DBUS_TYPE_STRING, &str);
}
+static void request_input_append_previouspassphrase(DBusMessageIter *iter,
+ void *user_data)
+{
+ const char *passphrase = user_data;
+ const char *str = "informational";
+
+ connman_dbus_dict_append_basic(iter, "Type",
+ DBUS_TYPE_STRING, &str);
+ connman_dbus_dict_append_basic(iter, "Value",
+ DBUS_TYPE_STRING, &passphrase);
+}
+
static void request_input_login_reply(DBusPendingCall *call, void *user_data)
{
struct request_input_reply *username_password_reply = user_data;
authentication_cb_t callback, void *user_data)
{
DBusMessage *message;
- const char *path;
+ const char *path, *passphrase;
DBusMessageIter iter;
DBusMessageIter dict;
DBusPendingCall *call;
CONNMAN_SERVICE_SECURITY_NONE) {
connman_dbus_dict_append_dict(&dict, "Passphrase",
request_input_append_passphrase, service);
+ passphrase = __connman_service_get_passphrase(service);
+ if (passphrase != NULL)
+ connman_dbus_dict_append_dict(&dict, "PreviousPassphrase",
+ request_input_append_previouspassphrase,
+ (void *) passphrase);
}
if (__connman_service_wps_enabled(service) == TRUE) {
}
if (dbus_connection_send_with_reply(connection, message, &call,
- REQUEST_TIMEOUT) == FALSE) {
+ connman_timeout_input_request())
+ == FALSE) {
dbus_message_unref(message);
g_free(passphrase_reply);
return -ESRCH;
dbus_message_unref(message);
- return -EIO;
+ return -EINPROGRESS;
}
int __connman_agent_request_login_input(struct connman_service *service,
}
if (dbus_connection_send_with_reply(connection, message, &call,
- REQUEST_TIMEOUT) == FALSE) {
+ connman_timeout_input_request())
+ == FALSE) {
dbus_message_unref(message);
g_free(username_password_reply);
return -ESRCH;
dbus_message_unref(message);
- return -EIO;
+ return -EINPROGRESS;
}
struct request_browser_reply_data {
}
if (dbus_connection_send_with_reply(connection, message, &call,
- REQUEST_TIMEOUT) == FALSE) {
+ connman_timeout_browser_launch())
+ == FALSE) {
dbus_message_unref(message);
g_free(browser_reply_data);
return -ESRCH;
dbus_message_unref(message);
- return -EIO;
+ return -EINPROGRESS;
}
struct report_error_data {
}
if (dbus_connection_send_with_reply(connection, message, &call,
- REQUEST_TIMEOUT) == FALSE) {
+ connman_timeout_input_request())
+ == FALSE) {
dbus_message_unref(message);
g_free(report_error);
return -ESRCH;
report_error, NULL);
dbus_message_unref(message);
- return -EIO;
+ return -EINPROGRESS;
}
int __connman_agent_init(void)