diff options
Diffstat (limited to 'src/service.c')
-rwxr-xr-x | src/service.c | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/src/service.c b/src/service.c index 20123197..e21f68a0 100755 --- a/src/service.c +++ b/src/service.c @@ -240,6 +240,12 @@ struct connman_service { #endif int ins_score; #endif +#if defined TIZEN_EXT && defined TIZEN_EXT_EAP_ON_ETHERNET + /* + * To indicate use of EAP over Ethernet. + */ + bool use_eapol; +#endif /* defined TIZEN_EXT && defined TIZEN_EXT_EAP_ON_ETHERNET */ }; static bool allow_property_changed(struct connman_service *service); @@ -882,6 +888,9 @@ static int service_load(struct connman_service *service) #if defined TIZEN_EXT bool internet_connection; #endif +#if defined TIZEN_EXT && defined TIZEN_EXT_EAP_ON_ETHERNET + bool use_eapol; +#endif DBG("service %p", service); @@ -1018,6 +1027,14 @@ static int service_load(struct connman_service *service) if (!error) service->autoconnect = autoconnect; g_clear_error(&error); + +#if defined TIZEN_EXT && defined TIZEN_EXT_EAP_ON_ETHERNET + use_eapol = g_key_file_get_boolean(keyfile, + service->identifier, "UseEapol", &error); + if (!error) + service->use_eapol = use_eapol; + g_clear_error(&error); +#endif break; } @@ -1357,6 +1374,10 @@ static int service_save(struct connman_service *service) if (service->favorite) g_key_file_set_boolean(keyfile, service->identifier, "AutoConnect", service->autoconnect); +#if defined TIZEN_EXT && defined TIZEN_EXT_EAP_ON_ETHERNET + g_key_file_set_boolean(keyfile, service->identifier, + "UseEapol", service->use_eapol); +#endif break; } @@ -2826,6 +2847,26 @@ void connman_service_set_disconnection_requested(struct connman_service *service } #endif +#if defined TIZEN_EXT && defined TIZEN_EXT_EAP_ON_ETHERNET +static void use_eapol_changed(struct connman_service *service) +{ + dbus_bool_t use_eapol; + + if (!service->path) + return; + + if (!allow_property_changed(service)) + return; + + use_eapol = service->use_eapol; + connman_dbus_property_changed_basic(service->path, + CONNMAN_SERVICE_INTERFACE, + "UseEapol", + DBUS_TYPE_BOOLEAN, + &use_eapol); +} +#endif /* defined TIZEN_EXT && defined TIZEN_EXT_EAP_ON_ETHERNET */ + static void strength_changed(struct connman_service *service) { if (service->strength == 0) @@ -4111,6 +4152,11 @@ static void append_properties(DBusMessageIter *dict, dbus_bool_t limited, break; #endif case CONNMAN_SERVICE_TYPE_ETHERNET: +#if defined TIZEN_EXT && defined TIZEN_EXT_EAP_ON_ETHERNET + val = service->use_eapol; + connman_dbus_dict_append_basic(dict, "UseEapol", + DBUS_TYPE_BOOLEAN, &val); +#endif /* defined TIZEN_EXT && defined TIZEN_EXT_EAP_ON_ETHERNET */ case CONNMAN_SERVICE_TYPE_BLUETOOTH: case CONNMAN_SERVICE_TYPE_GADGET: connman_dbus_dict_append_dict(dict, "Ethernet", @@ -5020,6 +5066,18 @@ const char *__connman_service_get_passphrase(struct connman_service *service) return service->passphrase; } +#if defined TIZEN_EXT && defined TIZEN_EXT_EAP_ON_ETHERNET +int __connman_service_get_use_eapol(struct connman_service *service) +{ + if (!service) { + DBG("Service is NULL"); + return -1; + } + + return service->use_eapol; +} +#endif /* defined TIZEN_EXT && defined TIZEN_EXT_EAP_ON_ETHERNET */ + static DBusMessage *get_properties(DBusConnection *conn, DBusMessage *msg, void *user_data) { @@ -5725,6 +5783,18 @@ static DBusMessage *set_property(DBusConnection *conn, __connman_service_set_passphrase(service, passphrase); #endif +#if defined TIZEN_EXT && defined TIZEN_EXT_EAP_ON_ETHERNET + } else if (g_str_equal(name, "UseEapol")) { + dbus_bool_t use_eapol; + + if (type != DBUS_TYPE_BOOLEAN) + return __connman_error_invalid_arguments(msg); + + dbus_message_iter_get_basic(&value, &use_eapol); + + service->use_eapol = use_eapol; + service_save(service); +#endif /* defined TIZEN_EXT && defined TIZEN_EXT_EAP_ON_ETHERNET */ } else return __connman_error_invalid_property(msg); @@ -7142,6 +7212,9 @@ static void service_initialize(struct connman_service *service) service->user_pdn_connection_refcount = 0; __sync_synchronize(); #endif +#if defined TIZEN_EXT && defined TIZEN_EXT_EAP_ON_ETHERNET + service->use_eapol = false; +#endif /* defined TIZEN_EXT && defined TIZEN_EXT_EAP_ON_ETHERNET */ } /** |