diff options
Diffstat (limited to 'network/bridge.c')
-rw-r--r-- | network/bridge.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/network/bridge.c b/network/bridge.c index 24f1bcc4..e481ca80 100644 --- a/network/bridge.c +++ b/network/bridge.c @@ -39,6 +39,7 @@ #include <bluetooth/bnep.h> #include "bridge.h" +#include "common.h" static int bridge_socket = -1; static const char *gn_bridge; @@ -86,6 +87,10 @@ int bridge_remove(int id) int err; const char *name = bridge_get_name(id); + err = bnep_if_down(name); + if (err < 0) + return err; + err = ioctl(bridge_socket, SIOCBRDELBR, name); if (err < 0) return -errno; @@ -99,6 +104,9 @@ int bridge_add_interface(int id, const char *dev) int ifindex = if_nametoindex(dev); const char *name = bridge_get_name(id); + if (!name) + return -EINVAL; + if (ifindex == 0) return -ENODEV; |