summaryrefslogtreecommitdiffstats
path: root/network/bridge.c
diff options
context:
space:
mode:
authorLuiz Augusto von Dentz <luiz.dentz@openbossa.org>2007-09-28 13:32:50 +0000
committerLuiz Augusto von Dentz <luiz.dentz@openbossa.org>2007-09-28 13:32:50 +0000
commitda7741d54263d6de3475b8c10db3c1dd3ebaebaf (patch)
tree20eed92b955623017d616241d9ca6a8de7e0fb36 /network/bridge.c
parent123ef726b4bb5c465cd8a5e7b7c003e55443b219 (diff)
Improve bridge and network interfaces manipulation.
Diffstat (limited to 'network/bridge.c')
-rw-r--r--network/bridge.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/network/bridge.c b/network/bridge.c
index e481ca80..ad4fc72e 100644
--- a/network/bridge.c
+++ b/network/bridge.c
@@ -101,6 +101,7 @@ int bridge_remove(int id)
int bridge_add_interface(int id, const char *dev)
{
struct ifreq ifr;
+ int err;
int ifindex = if_nametoindex(dev);
const char *name = bridge_get_name(id);
@@ -113,8 +114,13 @@ int bridge_add_interface(int id, const char *dev)
strncpy(ifr.ifr_name, name, IFNAMSIZ);
ifr.ifr_ifindex = ifindex;
- if (ioctl(bridge_socket, SIOCBRADDIF, &ifr) < 0)
- return -errno;
+ err = ioctl(bridge_socket, SIOCBRADDIF, &ifr);
+ if (err < 0)
+ return err;
+
+ err = bnep_if_up(name, id);
+ if (err < 0)
+ return err;
return 0;
}