X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fnetwork.c;h=b710368358ce064a5a2dc0baa542268de95d8113;hb=48e25ec7f60ffcba067708732298fd85a2b3ed47;hp=cf74b6d56002db3ff4439be3a6741e9eb5fb1a25;hpb=45e07ac85c513f438bf4534b4a6abe36f0467248;p=platform%2Fupstream%2Fconnman.git diff --git a/src/network.c b/src/network.c index cf74b6d..b710368 100755 --- a/src/network.c +++ b/src/network.c @@ -108,6 +108,7 @@ struct connman_network { char encryption_mode[WIFI_ENCYPTION_MODE_LEN_MAX]; unsigned char bssid[WIFI_BSSID_LEN_MAX]; unsigned int maxrate; + int maxspeed; bool isHS20AP; unsigned int keymgmt; char *keymgmt_type; @@ -115,6 +116,14 @@ struct connman_network { int disconnect_reason; int assoc_status_code; GSList *vsie_list; + /* + * Only for EAP-FAST + */ + char *phase1; + unsigned char country_code[WIFI_COUNTRY_CODE_LEN]; + GSList *bssid_list; + ieee80211_modes_e phy_mode; + connection_mode_e connection_mode; #endif } wifi; @@ -980,6 +989,7 @@ static void network_destruct(struct connman_network *network) g_free(network->wifi.pin_wps); #if defined TIZEN_EXT g_slist_free_full(network->wifi.vsie_list, g_free); + g_slist_free_full(network->wifi.bssid_list, g_free); #endif g_free(network->path); g_free(network->group); @@ -1965,6 +1975,24 @@ unsigned char *connman_network_get_bssid(struct connman_network *network) return (unsigned char *)network->wifi.bssid; } +int connman_network_set_maxspeed(struct connman_network *network, + int maxspeed) +{ + network->wifi.maxspeed = maxspeed; + return 0; +} + +int connman_network_get_maxspeed(struct connman_network *network) +{ + if (!network->driver) + return 0; + + if (network->connected) + return network->wifi.maxspeed; + + return 0; +} + int connman_network_set_maxrate(struct connman_network *network, unsigned int maxrate) { @@ -2072,6 +2100,70 @@ int connman_network_get_assoc_status_code(struct connman_network *network) return network->wifi.assoc_status_code; } + +int connman_network_set_countrycode(struct connman_network *network, + const unsigned char *country_code) +{ + int i = 0; + + if (country_code == NULL) + return -EINVAL; + + DBG("network %p Country Code %02x:%02x",network, + country_code[0],country_code[1]); + + for (; i < WIFI_COUNTRY_CODE_LEN; i++) + network->wifi.country_code[i] = country_code[i]; + + return 0; +} + +unsigned char *connman_network_get_countrycode(struct connman_network *network) +{ + return (unsigned char *)network->wifi.country_code; +} + +int connman_network_set_bssid_list(struct connman_network *network, + GSList *bssids) +{ + g_slist_free_full(network->wifi.bssid_list, g_free); + network->wifi.bssid_list = bssids; + + return 0; +} + +int connman_network_set_phy_mode(struct connman_network *network, + ieee80211_modes_e mode) +{ + DBG("network %p phy mode %d", network, mode); + network->wifi.phy_mode = mode; + + return 0; +} + +ieee80211_modes_e connman_network_get_phy_mode(struct connman_network *network) +{ + return network->wifi.phy_mode; +} + +int connman_network_set_connection_mode(struct connman_network *network, + connection_mode_e mode) +{ + DBG("network %p connection mode %d", network, mode); + network->wifi.connection_mode = mode; + + return 0; +} + +connection_mode_e connman_network_get_connection_mode(struct connman_network *network) +{ + return network->wifi.connection_mode; +} + +void *connman_network_get_bssid_list(struct connman_network *network) +{ + return network->wifi.bssid_list; +} #endif int connman_network_set_nameservers(struct connman_network *network, @@ -2397,6 +2489,7 @@ bool connman_network_get_bool(struct connman_network *network, */ void connman_network_set_vsie_list(struct connman_network *network, GSList *vsie_list) { + g_slist_free_full(network->wifi.vsie_list, g_free); network->wifi.vsie_list = vsie_list; }