summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--network/server.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/network/server.c b/network/server.c
index de30f72e..e9fc2506 100644
--- a/network/server.c
+++ b/network/server.c
@@ -346,11 +346,13 @@ static void authorization_callback(DBusPendingCall *pcall, void *data)
bridge = bridge_get_name(ns->id);
if (bridge) {
bnep_if_up(devname, 0);
- if (!ns->up)
+ if (!ns->up) {
bnep_if_up(bridge, ns->id);
+ ns->iface = g_strdup(bridge);
+ ns->up = TRUE;
+ }
} else
bnep_if_up(devname, ns->id);
- ns->up = TRUE;
ns->clients = g_slist_append(ns->clients, g_strdup(s->address));
@@ -1138,6 +1140,9 @@ static void server_unregister(DBusConnection *conn, void *data)
info("Unregistered server path:%s", ns->path);
+ if (ns->up)
+ bnep_if_down(ns->iface);
+
server_free(ns);
}