diff options
author | Alexander Couzens <lynxis@fe80.eu> | 2020-12-29 23:13:23 +0100 |
---|---|---|
committer | laforge <laforge@osmocom.org> | 2020-12-29 22:41:41 +0000 |
commit | fdea03b40859057fb85014ace8cdb65e57c2b373 (patch) | |
tree | ed6a2f45f89936333bb17f66f22af31f00c6bfc2 | |
parent | 0a2b257868214502e392f01ff2c3f92993bd5e4e (diff) |
gprs_ns2: fr: check the device state before changing state
Reduce the required capabilities if the device is already
set up.
Change-Id: I72eb2567078758694c648a493324b212461ee735
-rw-r--r-- | src/gb/gprs_ns2_fr.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 1b0ec003..e972a343 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -447,6 +447,13 @@ static int set_ifupdown(const char *netif, bool up) memset(&req, 0, sizeof req); OSMO_STRLCPY_ARRAY(req.ifr_name, netif); + rc = ioctl(sock, SIOCGIFFLAGS, &req); + if (rc < 0) + return rc; + + if ((req.ifr_flags & IFF_UP) == up) + return 0; + if (up) req.ifr_flags |= IFF_UP; |