From: taesub kim Date: Thu, 14 Sep 2017 00:36:09 +0000 (+0900) Subject: Add APIs to set/get auto connection mode X-Git-Tag: accepted/tizen/unified/20170921.072215~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;ds=sidebyside;h=2d1923155d6c76c04af6b10efe6b0879258f0121;p=platform%2Fupstream%2Fconnman.git Add APIs to set/get auto connection mode Change-Id: I34e42d98ab540ffb75e0ae860fb1b615ef2bddcb Signed-off-by: Taesub Kim --- diff --git a/src/connman.h b/src/connman.h index 5e257bf..658a239 100755 --- a/src/connman.h +++ b/src/connman.h @@ -764,6 +764,12 @@ int __connman_service_disconnect(struct connman_service *service); int __connman_service_disconnect_all(void); void __connman_service_set_active_session(bool enable, GSList *list); void __connman_service_auto_connect(enum connman_service_connect_reason reason); + +#if defined TIZEN_EXT +bool __connman_service_get_auto_connect_mode(void); +void __connman_service_set_auto_connect_mode(bool enable); +#endif + bool __connman_service_remove(struct connman_service *service); bool __connman_service_is_provider_pending(struct connman_service *service); void __connman_service_set_provider_pending(struct connman_service *service, diff --git a/src/manager.c b/src/manager.c index 622ed59..befc373 100755 --- a/src/manager.c +++ b/src/manager.c @@ -65,6 +65,9 @@ static DBusMessage *get_properties(DBusConnection *conn, DBusMessageIter array, dict; dbus_bool_t offlinemode; const char *str; +#if defined TIZEN_EXT + dbus_bool_t autoconnectmode; +#endif DBG("conn %p", conn); @@ -87,6 +90,12 @@ static DBusMessage *get_properties(DBusConnection *conn, connman_dbus_dict_append_basic(&dict, "SessionMode", DBUS_TYPE_BOOLEAN, &sessionmode); +#if defined TIZEN_EXT + autoconnectmode = __connman_service_get_auto_connect_mode(); + connman_dbus_dict_append_basic(&dict, "AutoConnectMode", + DBUS_TYPE_BOOLEAN, + &autoconnectmode); +#endif connman_dbus_dict_close(&array, &dict); @@ -147,8 +156,20 @@ static DBusMessage *set_property(DBusConnection *conn, return __connman_error_invalid_arguments(msg); dbus_message_iter_get_basic(&value, &sessionmode); + } +#if defined TIZEN_EXT + else if (g_str_equal(name, "AutoConnectMode") == TRUE) { + bool automode; - } else + if (type != DBUS_TYPE_BOOLEAN) + return __connman_error_invalid_arguments(msg); + + dbus_message_iter_get_basic(&value, &automode); + + __connman_service_set_auto_connect_mode(automode); + } +#endif + else return __connman_error_invalid_property(msg); return g_dbus_create_reply(msg, DBUS_TYPE_INVALID); diff --git a/src/service.c b/src/service.c index 4497b39..ee4ef82 100755 --- a/src/service.c +++ b/src/service.c @@ -58,6 +58,10 @@ static unsigned int vpn_autoconnect_timeout = 0; static struct connman_service *current_default = NULL; static bool services_dirty = false; +#if defined TIZEN_EXT +static bool auto_connect_mode = TRUE; +#endif + struct connman_stats { bool valid; bool enabled; @@ -4962,6 +4966,21 @@ static gboolean run_auto_connect(gpointer data) return FALSE; } +#if defined TIZEN_EXT +bool __connman_service_get_auto_connect_mode(void) +{ + return auto_connect_mode; +} + +void __connman_service_set_auto_connect_mode(bool enable) +{ + DBG("set auto_connect_mode = %d", enable); + + if (auto_connect_mode != enable) + auto_connect_mode = enable; +} +#endif + void __connman_service_auto_connect(enum connman_service_connect_reason reason) { DBG(""); @@ -4969,6 +4988,13 @@ void __connman_service_auto_connect(enum connman_service_connect_reason reason) if (autoconnect_timeout != 0) return; +#if defined TIZEN_EXT + if (auto_connect_mode == FALSE) { + DBG("Currently, not auto connection mode"); + return; + } +#endif + if (!__connman_session_policy_autoconnect(reason)) return;