diff options
-rw-r--r-- | src/service.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/service.c b/src/service.c index 6f31adb3..06d02322 100644 --- a/src/service.c +++ b/src/service.c @@ -3241,6 +3241,9 @@ int __connman_service_check_passphrase(enum connman_service_security security, return 0; } +static void set_error(struct connman_service *service, + enum connman_service_error error); + int __connman_service_set_passphrase(struct connman_service *service, const char *passphrase) { @@ -3265,6 +3268,10 @@ int __connman_service_set_passphrase(struct connman_service *service, connman_network_set_string(service->network, "WiFi.Passphrase", service->passphrase); + if (service->hidden_service && + service->error == CONNMAN_SERVICE_ERROR_INVALID_KEY) + set_error(service, CONNMAN_SERVICE_ERROR_UNKNOWN); + return 0; } @@ -3617,9 +3624,6 @@ void __connman_service_wispr_start(struct connman_service *service, __connman_wispr_start(service, type); } -static void set_error(struct connman_service *service, - enum connman_service_error error); - static DBusMessage *set_property(DBusConnection *conn, DBusMessage *msg, void *user_data) { @@ -6824,6 +6828,13 @@ int __connman_service_connect(struct connman_service *service, service->pending = NULL; } + if (service->hidden_service && + service->error == CONNMAN_SERVICE_ERROR_INVALID_KEY) { + __connman_service_indicate_error(service, + CONNMAN_SERVICE_ERROR_INVALID_KEY); + return err; + } + err = __connman_agent_request_passphrase_input(service, request_input_cb, dbus_sender, |