diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2008-03-01 07:53:50 +0100 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2008-03-01 07:53:50 +0100 |
commit | e3db50a2ec3968dc31b780ad0bb794b908c227bb (patch) | |
tree | 5a191ab0a2d0a8f591dea64101a128aa82f506c4 /src | |
parent | 658e0e6d8699510d8ea94f0bb6e44718f9956e96 (diff) | |
download | connman-e3db50a2ec3968dc31b780ad0bb794b908c227bb.tar.gz connman-e3db50a2ec3968dc31b780ad0bb794b908c227bb.tar.bz2 connman-e3db50a2ec3968dc31b780ad0bb794b908c227bb.zip |
Add callbacks for starting and stopping interface
Diffstat (limited to 'src')
-rw-r--r-- | src/iface-inet.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/iface-inet.c b/src/iface-inet.c index a09ba312..a0915af4 100644 --- a/src/iface-inet.c +++ b/src/iface-inet.c @@ -140,8 +140,13 @@ int __connman_iface_up(struct connman_iface *iface) ifr.ifr_flags |= IFF_UP; - if (ioctl(sk, SIOCSIFFLAGS, &ifr) < 0) + if (ioctl(sk, SIOCSIFFLAGS, &ifr) < 0) { err = -errno; + goto done; + } + + if (iface->driver->start) + err = iface->driver->start(iface); else err = 0; @@ -158,6 +163,12 @@ int __connman_iface_down(struct connman_iface *iface) DBG("iface %p", iface); + if (iface->driver->stop) { + err = iface->driver->stop(iface); + if (err < 0) + return err; + } + sk = socket(PF_INET, SOCK_DGRAM, 0); if (sk < 0) return -errno; |