diff options
author | Andrei Emeltchenko <andrei.emeltchenko@intel.com> | 2014-10-17 15:54:10 +0300 |
---|---|---|
committer | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2014-10-20 15:28:32 +0300 |
commit | a1e74ab31e78c86d45ac46c519d706f64166501d (patch) | |
tree | 12eddaf9f7f7b39c4aa24f511048e1153ee4dd28 /profiles/network | |
parent | 7714548e2dddd3a6dbd0b8ba41a7102d64ba52f7 (diff) | |
download | bluez-a1e74ab31e78c86d45ac46c519d706f64166501d.tar.gz |
bnep: Fix bnep_add_to_bridge() errno usage
Avoid errno be overwritten and make code consistent.
Diffstat (limited to 'profiles/network')
-rw-r--r-- | profiles/network/bnep.c | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/profiles/network/bnep.c b/profiles/network/bnep.c index 18051c309..c40ed6950 100644 --- a/profiles/network/bnep.c +++ b/profiles/network/bnep.c @@ -491,7 +491,7 @@ static int bnep_add_to_bridge(const char *devname, const char *bridge) { int ifindex; struct ifreq ifr; - int sk, err; + int sk, err = 0; if (!devname || !bridge) return -EINVAL; @@ -506,16 +506,16 @@ static int bnep_add_to_bridge(const char *devname, const char *bridge) 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) @@ -561,11 +561,10 @@ int bnep_server_add(int sk, uint16_t dst, char *bridge, char *iface, 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); |