From 43a29da43f9d9f518c939d0251bc0f266dff7887 Mon Sep 17 00:00:00 2001 From: Patrik Flykt Date: Tue, 15 Nov 2011 13:19:51 +0200 Subject: tethering: Use already existing 'tether' bridge interface When creating bridge interface 'tether', don't report error if it already exists. Check also -EALREADY given by connman_inet_ifup() via enable_bridge() if the bridge interface was already up. Fixes BMC#23931 --- src/tethering.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'src/tethering.c') diff --git a/src/tethering.c b/src/tethering.c index b4ab993c..8d6532b7 100644 --- a/src/tethering.c +++ b/src/tethering.c @@ -210,10 +210,11 @@ static int create_bridge(const char *name) if (sk < 0) return -EOPNOTSUPP; - err = ioctl(sk, SIOCBRADDBR, name); - - if (err < 0) - return -EOPNOTSUPP; + if (ioctl(sk, SIOCBRADDBR, name) == -1) { + err = -errno; + if (err != -EEXIST) + return -EOPNOTSUPP; + } err = set_forward_delay(name, 0); @@ -348,7 +349,7 @@ void __connman_tethering_set_enabled(void) return; err = enable_bridge(BRIDGE_NAME); - if (err < 0) { + if (err < 0 && err != -EALREADY) { remove_bridge(BRIDGE_NAME); return; } -- cgit v1.2.3