Re: [PATCH 2/2] inet: Fix error handling when bridging interfaces

2013-01-08 Thread Patrik Flykt
On Mon, 2013-01-07 at 09:24 -0500, Forest Bond wrote:
> From: Forest Bond 
> 
> Functions that add and remove interfaces to and from bridges now return
> an appropriate error code.

Applied, thanks!

Patrik

___
connman mailing list
connman@connman.net
http://lists.connman.net/listinfo/connman


[PATCH 2/2] inet: Fix error handling when bridging interfaces

2013-01-07 Thread Forest Bond
From: Forest Bond 

Functions that add and remove interfaces to and from bridges now return
an appropriate error code.
---
 src/inet.c |   40 ++--
 1 files changed, 22 insertions(+), 18 deletions(-)

diff --git a/src/inet.c b/src/inet.c
index c360f56..0027fe6 100644
--- a/src/inet.c
+++ b/src/inet.c
@@ -1183,59 +1183,63 @@ connman_bool_t connman_inet_compare_subnet(int index, 
const char *host)
 int connman_inet_remove_from_bridge(int index, const char *bridge)
 {
struct ifreq ifr;
-   int sk, err;
+   int sk, err = 0;
 
if (bridge == NULL)
return -EINVAL;
 
sk = socket(AF_INET, SOCK_STREAM | SOCK_CLOEXEC, 0);
-   if (sk < 0)
-   return sk;
+   if (sk < 0) {
+   err = -errno;
+   goto out;
+   }
 
memset(&ifr, 0, sizeof(ifr));
strncpy(ifr.ifr_name, bridge, IFNAMSIZ - 1);
ifr.ifr_ifindex = index;
 
-   err = ioctl(sk, SIOCBRDELIF, &ifr);
+   if (ioctl(sk, SIOCBRDELIF, &ifr) < 0)
+   err = -errno;
 
close(sk);
 
-   if (err < 0) {
+out:
+   if (err < 0)
connman_error("Remove interface from bridge error %s",
-   strerror(errno));
-   return err;
-   }
+   strerror(-err));
 
-   return 0;
+   return err;
 }
 
 int connman_inet_add_to_bridge(int index, const char *bridge)
 {
struct ifreq ifr;
-   int sk, err;
+   int sk, err = 0;
 
if (bridge == NULL)
return -EINVAL;
 
sk = socket(AF_INET, SOCK_STREAM | SOCK_CLOEXEC, 0);
-   if (sk < 0)
-   return sk;
+   if (sk < 0) {
+   err = -errno;
+   goto out;
+   }
 
memset(&ifr, 0, sizeof(ifr));
strncpy(ifr.ifr_name, bridge, IFNAMSIZ - 1);
ifr.ifr_ifindex = index;
 
-   err = ioctl(sk, SIOCBRADDIF, &ifr);
+   if (ioctl(sk, SIOCBRADDIF, &ifr) < 0)
+   err = -errno;
 
close(sk);
 
-   if (err < 0) {
+out:
+   if (err < 0)
connman_error("Add interface to bridge error %s",
-   strerror(errno));
-   return err;
-   }
+   strerror(-err));
 
-   return 0;
+   return err;
 }
 
 int connman_inet_set_mtu(int index, int mtu)
-- 
1.7.0.4
___
connman mailing list
connman@connman.net
http://lists.connman.net/listinfo/connman