summaryrefslogtreecommitdiff
path: root/profiles/network
diff options
context:
space:
mode:
authorAndrei Emeltchenko <andrei.emeltchenko@intel.com>2014-10-17 15:54:10 +0300
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2014-10-20 15:28:32 +0300
commita1e74ab31e78c86d45ac46c519d706f64166501d (patch)
tree12eddaf9f7f7b39c4aa24f511048e1153ee4dd28 /profiles/network
parent7714548e2dddd3a6dbd0b8ba41a7102d64ba52f7 (diff)
downloadbluez-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.c23
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);