diff options
author | Patrik Flykt <patrik.flykt@linux.intel.com> | 2011-11-15 13:19:51 +0200 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2011-11-15 13:31:34 +0100 |
commit | 43a29da43f9d9f518c939d0251bc0f266dff7887 (patch) | |
tree | 128f6186cb87e8d95d0dac7865754473fc77ccd6 /src/tethering.c | |
parent | 1e55b7082ddad54711949af3a5ae35fb900bb138 (diff) | |
download | connman-43a29da43f9d9f518c939d0251bc0f266dff7887.tar.gz connman-43a29da43f9d9f518c939d0251bc0f266dff7887.tar.bz2 connman-43a29da43f9d9f518c939d0251bc0f266dff7887.zip |
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
Diffstat (limited to 'src/tethering.c')
-rw-r--r-- | src/tethering.c | 11 |
1 files changed, 6 insertions, 5 deletions
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; } |