summaryrefslogtreecommitdiff
path: root/src/service.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/service.c')
-rw-r--r--src/service.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/service.c b/src/service.c
index 24e9562a..893b4fce 100644
--- a/src/service.c
+++ b/src/service.c
@@ -5186,7 +5186,16 @@ static int service_indicate_state(struct connman_service *service)
if (new_state == CONNMAN_SERVICE_STATE_IDLE &&
old_state != CONNMAN_SERVICE_STATE_DISCONNECT) {
+#if !defined TIZEN_EXT
+ /*
+ * Description: 'service->pending' should be cleared whenever
+ * connection is finished regardless success or failure.
+ * If the service is disconnected in configuration state by
+ * dhcp failure or by the other part of connman, new state is
+ * 'idle' but old state is 'disconnect'. So it's not cleared.
+ */
reply_pending(service, ECONNABORTED);
+#endif
__connman_service_disconnect(service);
}
@@ -5208,6 +5217,9 @@ static int service_indicate_state(struct connman_service *service)
if (new_state == CONNMAN_SERVICE_STATE_IDLE) {
connman_bool_t reconnect;
+#if defined TIZEN_EXT
+ reply_pending(service, ECONNABORTED);
+#endif
reconnect = get_reconnect_state(service);
if (reconnect == TRUE)
__connman_service_auto_connect();