X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=plugins%2Fgadget.c;h=1b44bbb581332e088fb296c2268dd7dd053ffd30;hb=2bd325428feab81382b17b062d4e3b49ede180e4;hp=6bc37a7b37b873f0285dafb9cd2ae4ddaa037968;hpb=6aa4055ef0544ae85457c25c510fe3db04949c43;p=platform%2Fupstream%2Fconnman.git diff --git a/plugins/gadget.c b/plugins/gadget.c index 6bc37a7..1b44bbb 100755 --- a/plugins/gadget.c +++ b/plugins/gadget.c @@ -25,8 +25,6 @@ #include #include -#include -#include #ifndef IFF_LOWER_UP #define IFF_LOWER_UP 0x10000 @@ -228,71 +226,6 @@ static struct connman_device_driver gadget_dev_driver = { }; static GList *cdc_interface_list = NULL; -static GHashTable *cdc_mac_hash = NULL; - -static void add_station(int index) -{ - char *path, line[128] = {'\0'}; - char *ifname = connman_inet_ifname(index); - char *mac; - FILE *f; - - if (ifname == NULL) - return; - - path = g_strdup_printf("/sys/class/usb_mode/%s/f_rndis/ethaddr", - ifname); - - f = fopen(path, "re"); - - g_free(ifname); - g_free(path); - - if (f == NULL) - return; - - if (fgets(line, sizeof(line), f) == NULL) { - fclose(f); - return; - } - - fclose(f); - - mac = g_ascii_strdown(line, strlen(line) - 1); - DBG("Add station %s in Technology %d", mac, - CONNMAN_SERVICE_TYPE_GADGET); - - g_hash_table_insert(cdc_mac_hash, GINT_TO_POINTER(index), - mac); - - connman_technology_tethering_add_station(CONNMAN_SERVICE_TYPE_GADGET, - mac); -} - -static void remove_station(int index) -{ - char *mac; - mac = g_hash_table_lookup(cdc_mac_hash, GINT_TO_POINTER(index)); - if (mac == NULL) - return; - - connman_technology_tethering_remove_station(mac); - - g_hash_table_remove(cdc_mac_hash, GINT_TO_POINTER(index)); -} - -static gboolean remove_all_station(gpointer key, gpointer value, gpointer user_data) -{ - char *mac; - mac = value; - if (mac == NULL) - return TRUE; - - connman_technology_tethering_remove_station(mac); - - return TRUE; -} - static void gadget_tech_add_interface(struct connman_technology *technology, int index, const char *name, const char *ident) @@ -313,8 +246,6 @@ static void gadget_tech_remove_interface(struct connman_technology *technology, cdc_interface_list = g_list_remove(cdc_interface_list, GINT_TO_POINTER((int) index)); - - remove_station(index); } static void gadget_tech_enable_tethering(struct connman_technology *technology, @@ -340,7 +271,7 @@ static void gadget_tech_enable_tethering(struct connman_technology *technology, connman_inet_add_to_bridge(index, bridge); - add_station(index); + gadget_tethering = true; } } @@ -354,17 +285,17 @@ static void gadget_tech_disable_tethering(struct connman_technology *technology, connman_inet_remove_from_bridge(index, bridge); - remove_station(index); - connman_inet_ifdown(index); connman_technology_tethering_notify(technology, false); + + gadget_tethering = false; } } static int gadget_tech_set_tethering(struct connman_technology *technology, const char *identifier, const char *passphrase, - const char *bridge, bool enabled, bool hidden) + const char *bridge, bool enabled) { DBG("bridge %s enabled %d", bridge, enabled); @@ -378,28 +309,14 @@ static int gadget_tech_set_tethering(struct connman_technology *technology, static int gadget_tech_probe(struct connman_technology *technology) { - DBG("tech probe %p", technology); - - cdc_mac_hash = g_hash_table_new_full(g_direct_hash, - g_direct_equal, NULL, g_free); - return 0; } static void gadget_tech_remove(struct connman_technology *technology) { - DBG("tech remove %p", technology); - g_list_free(cdc_interface_list); cdc_interface_list = NULL; - - if (cdc_mac_hash) { - g_hash_table_foreach_remove(cdc_mac_hash, remove_all_station, - NULL); - g_hash_table_destroy(cdc_mac_hash); - cdc_mac_hash = NULL; - } } static struct connman_technology_driver gadget_tech_driver = {