Append AssocStatusCode Property for Wi-Fi Manager Layer
[platform/upstream/connman.git] / src / service.c
index 24a7b00..1b6d3ba 100755 (executable)
@@ -160,6 +160,7 @@ struct connman_service {
         */
        char *keymgmt_type;
        int disconnect_reason;
+       int assoc_status_code;
 #endif
 #ifdef TIZEN_EXT
        enum connman_dnsconfig_method dns_config_method_ipv4;
@@ -3324,6 +3325,9 @@ static void append_properties(DBusMessageIter *dict, dbus_bool_t limited,
                connman_dbus_dict_append_basic(dict, "DisconnectReason",
                                DBUS_TYPE_INT32, &service->disconnect_reason);
 
+               connman_dbus_dict_append_basic(dict, "AssocStatusCode",
+                               DBUS_TYPE_INT32, &service->assoc_status_code);
+
                break;
 #endif
        case CONNMAN_SERVICE_TYPE_ETHERNET:
@@ -5255,6 +5259,12 @@ static DBusMessage *connect_service(DBusConnection *conn,
         */
        if (service->type == CONNMAN_SERVICE_TYPE_CELLULAR)
                connman_service_user_pdn_connection_ref(service);
+
+       /*Reset the Disconnect Reason while issue connect request*/
+       service->disconnect_reason = 0;
+
+       /*Reset the association status code while issue connect request*/
+       service->assoc_status_code = 0;
 #endif
 
        if (service->pending)
@@ -7129,6 +7139,7 @@ static int service_indicate_state(struct connman_service *service)
 
                def_service = __connman_service_get_default();
                service->disconnect_reason = connman_network_get_disconnect_reason(service->network);
+               service->assoc_status_code = connman_network_get_assoc_status_code(service->network);
 
                if (!__connman_notifier_is_connected() &&
                        def_service &&
@@ -7169,6 +7180,9 @@ static int service_indicate_state(struct connman_service *service)
 
        case CONNMAN_SERVICE_STATE_FAILURE:
 #if defined TIZEN_EXT
+
+               service->assoc_status_code = connman_network_get_assoc_status_code(service->network);
+
                if (service->type == CONNMAN_SERVICE_TYPE_WIFI)
                        service->order = 5;
                __connman_service_auto_connect(CONNMAN_SERVICE_CONNECT_REASON_AUTO);