From 8380d01bf815b9d9e53b9ef6cb642e011f2afe33 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Wed, 22 Apr 2009 16:48:17 +0100 Subject: [PATCH] Add properties for WiFi services --- src/service.c | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/src/service.c b/src/service.c index b9f657e..3f730aa 100644 --- a/src/service.c +++ b/src/service.c @@ -737,6 +737,34 @@ static enum connman_service_type convert_network_type(struct connman_network *ne return CONNMAN_SERVICE_TYPE_UNKNOWN; } +static enum connman_service_mode convert_wifi_mode(const char *mode) +{ + if (mode == NULL) + return CONNMAN_SERVICE_MODE_UNKNOWN; + else if (g_str_equal(mode, "managed") == 0) + return CONNMAN_SERVICE_MODE_MANAGED; + else if (g_str_equal(mode, "adhoc") == 0) + return CONNMAN_SERVICE_MODE_ADHOC; + else + return CONNMAN_SERVICE_MODE_UNKNOWN; +} + +static enum connman_service_mode convert_wifi_security(const char *security) +{ + if (security == NULL) + return CONNMAN_SERVICE_SECURITY_UNKNOWN; + else if (g_str_equal(security, "none") == 0) + return CONNMAN_SERVICE_SECURITY_NONE; + else if (g_str_equal(security, "wep") == 0) + return CONNMAN_SERVICE_SECURITY_WEP; + else if (g_str_equal(security, "wpa") == 0) + return CONNMAN_SERVICE_SECURITY_WPA; + else if (g_str_equal(security, "wpa2") == 0) + return CONNMAN_SERVICE_SECURITY_WPA2; + else + return CONNMAN_SERVICE_SECURITY_UNKNOWN; +} + /** * connman_service_create_from_network: * @device: device structure @@ -746,7 +774,7 @@ static enum connman_service_type convert_network_type(struct connman_network *ne struct connman_service *__connman_service_create_from_network(struct connman_network *network) { struct connman_service *service; - const char *group; + const char *group, *str; char *name; group = __connman_network_get_group(network); @@ -768,6 +796,15 @@ struct connman_service *__connman_service_create_from_network(struct connman_net service->type = convert_network_type(network); + service->name = g_strdup(connman_network_get_string(network, "Name")); + service->strength = connman_network_get_uint8(network, "Strength"); + + str = connman_network_get_string(network, "WiFi.Mode"); + service->mode = convert_wifi_mode(str); + + str = connman_network_get_string(network, "WiFi.Security"); + service->security = convert_wifi_security(str); + service_register(service); done: -- 2.7.4