diff --git a/profiles/network/bnep.c b/profiles/network/bnep.c
index 18051c3..c40ed69 100644
--- a/profiles/network/bnep.c
+++ b/profiles/network/bnep.c
{
int ifindex;
struct ifreq ifr;
- int sk, err;
+ int sk, err = 0;
if (!devname || !bridge)
return -EINVAL;
strncpy(ifr.ifr_name, bridge, IFNAMSIZ - 1);
ifr.ifr_ifindex = ifindex;
- err = ioctl(sk, SIOCBRADDIF, &ifr);
+ if (ioctl(sk, SIOCBRADDIF, &ifr) < 0) {
+ err = -errno;
+ error("bnep: Can't add %s to the bridge %s: %s(%d)",
+ devname, bridge, strerror(-err), -err);
+ } else
+ info("bridge %s: interface %s added", bridge, devname);
close(sk);
- if (err < 0)
- return err;
-
- info("bridge %s: interface %s added", bridge, devname);
-
- return 0;
+ return err;
}
static int bnep_del_from_bridge(const char *devname, const char *bridge)
if (err < 0)
return err;
- if (bnep_add_to_bridge(iface, bridge) < 0) {
- error("bnep: Can't add %s to the bridge %s: %s(%d)",
- iface, bridge, strerror(errno), errno);
+ err = bnep_add_to_bridge(iface, bridge);
+ if (err < 0) {
bnep_conndel(addr);
- return -errno;
+ return err;
}
return bnep_if_up(iface);