diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2009-04-22 16:48:17 +0100 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2009-04-22 16:48:17 +0100 |
commit | 8380d01bf815b9d9e53b9ef6cb642e011f2afe33 (patch) | |
tree | aff636e9c8c047c6833407c57fefc0fc68abb00a /src | |
parent | 509ec7575e2b784e6ad5088048b5dc88689b80c8 (diff) | |
download | connman-8380d01bf815b9d9e53b9ef6cb642e011f2afe33.tar.gz connman-8380d01bf815b9d9e53b9ef6cb642e011f2afe33.tar.bz2 connman-8380d01bf815b9d9e53b9ef6cb642e011f2afe33.zip |
Add properties for WiFi services
Diffstat (limited to 'src')
-rw-r--r-- | src/service.c | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/src/service.c b/src/service.c index b9f657e5..3f730aa3 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: |