diff options
-rw-r--r-- | src/technology.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/technology.c b/src/technology.c index f8891b8d..82146175 100644 --- a/src/technology.c +++ b/src/technology.c @@ -154,6 +154,8 @@ static void tethering_changed(struct connman_technology *technology) void connman_technology_tethering_notify(struct connman_technology *technology, connman_bool_t enabled) { + GSList *list; + DBG("technology %p enabled %u", technology, enabled); if (technology->tethering == enabled) @@ -165,8 +167,15 @@ void connman_technology_tethering_notify(struct connman_technology *technology, if (enabled == TRUE) __connman_tethering_set_enabled(); - else - __connman_tethering_set_disabled(); + else { + for (list = technology_list; list; list = list->next) { + struct connman_technology *other_tech = list->data; + if (other_tech->tethering == TRUE) + break; + } + if (list == NULL) + __connman_tethering_set_disabled(); + } } static int set_tethering(struct connman_technology *technology, |