Refactor set_property's AutoConnect to a separate function.
---
 src/connman.h |  2 ++
 src/service.c | 29 +++++++++++++++++++----------
 2 files changed, 21 insertions(+), 10 deletions(-)

diff --git a/src/connman.h b/src/connman.h
index 35eb3f5..d1cb71b 100644
--- a/src/connman.h
+++ b/src/connman.h
@@ -759,6 +759,8 @@ bool __connman_service_is_hidden(struct connman_service 
*service);
 bool __connman_service_is_split_routing(struct connman_service *service);
 bool __connman_service_index_is_split_routing(int index);
 int __connman_service_get_index(struct connman_service *service);
+bool __connman_service_set_autoconnect(struct connman_service *service,
+                                               bool autoconnect);
 void __connman_service_set_hidden(struct connman_service *service);
 void __connman_service_set_hostname(struct connman_service *service,
                                                const char *hostname);
diff --git a/src/service.c b/src/service.c
index 196f6b5..9027810 100644
--- a/src/service.c
+++ b/src/service.c
@@ -2454,6 +2454,24 @@ int __connman_service_get_index(struct connman_service 
*service)
        return -1;
 }
 
+bool __connman_service_set_autoconnect(struct connman_service *service,
+                                               bool autoconnect)
+{
+       if (!service || service->autoconnect == autoconnect)
+               return false;
+
+       service->autoconnect = autoconnect;
+
+       autoconnect_changed(service);
+
+       if (autoconnect)
+               
__connman_service_auto_connect(CONNMAN_SERVICE_CONNECT_REASON_AUTO);
+
+       service_save(service);
+
+       return true;
+}
+
 void __connman_service_set_hidden(struct connman_service *service)
 {
        if (!service || service->hidden)
@@ -3229,17 +3247,8 @@ static DBusMessage *set_property(DBusConnection *conn,
 
                dbus_message_iter_get_basic(&value, &autoconnect);
 
-               if (service->autoconnect == autoconnect)
+               if (!__connman_service_set_autoconnect(service, autoconnect))
                        return g_dbus_create_reply(msg, DBUS_TYPE_INVALID);
-
-               service->autoconnect = autoconnect;
-
-               autoconnect_changed(service);
-
-               if (autoconnect)
-                       
__connman_service_auto_connect(CONNMAN_SERVICE_CONNECT_REASON_AUTO);
-
-               service_save(service);
        } else if (g_str_equal(name, "Nameservers.Configuration")) {
                DBusMessageIter entry;
                GString *str;
-- 
2.5.3

_______________________________________________
connman mailing list
connman@connman.net
https://lists.connman.net/mailman/listinfo/connman

Reply via email to