summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArron Wang <arron.wang@intel.com>2012-10-15 10:56:00 +0800
committerZhang zhengguang <zhengguang.zhang@intel.com>2013-07-01 11:05:12 +0800
commit9dabc5af5a19a7da74357afcf9f3301ada173e8e (patch)
treefb21b748da4a5c69600e59ac698d13b6f621f4d0
parente151cda8b88a2e3f697180a8d00f02a31e4c3213 (diff)
downloadconnman-9dabc5af5a19a7da74357afcf9f3301ada173e8e.tar.gz
connman-9dabc5af5a19a7da74357afcf9f3301ada173e8e.tar.bz2
connman-9dabc5af5a19a7da74357afcf9f3301ada173e8e.zip
Tizen: Fix reply pending bug
-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();