summaryrefslogtreecommitdiff
path: root/src/service.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/service.c')
-rwxr-xr-xsrc/service.c73
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 */
}
/**