diff options
author | brian <brian@FreeBSD.org> | 1998-12-10 18:36:30 +0000 |
---|---|---|
committer | brian <brian@FreeBSD.org> | 1998-12-10 18:36:30 +0000 |
commit | ba9233fa15b32ca12a7ce20239c3149b7d185bc0 (patch) | |
tree | 24a566946a43166b40eb8f90121bc6bc92bde18f /usr.sbin/ppp/bundle.c | |
parent | 578a7c33753075a3c31c8ceee8d4af48b7ac0c5e (diff) | |
download | FreeBSD-src-ba9233fa15b32ca12a7ce20239c3149b7d185bc0.zip FreeBSD-src-ba9233fa15b32ca12a7ce20239c3149b7d185bc0.tar.gz |
When using ``set device !someprogram'', when ``someprogram''
exits, it causes a select() exception.
Handle these select() exceptions on link descriptors in pretty
much the same way as loss of carrier rather than dropping out
in confusion.
Diffstat (limited to 'usr.sbin/ppp/bundle.c')
-rw-r--r-- | usr.sbin/ppp/bundle.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/usr.sbin/ppp/bundle.c b/usr.sbin/ppp/bundle.c index b8d49fd..c123f7a 100644 --- a/usr.sbin/ppp/bundle.c +++ b/usr.sbin/ppp/bundle.c @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: bundle.c,v 1.39 1998/10/27 22:53:22 brian Exp $ + * $Id: bundle.c,v 1.40 1998/10/29 23:47:10 brian Exp $ */ #include <sys/param.h> @@ -1729,3 +1729,17 @@ bundle_HighestState(struct bundle *bundle) return result; } + +int +bundle_Exception(struct bundle *bundle, int fd) +{ + struct datalink *dl; + + for (dl = bundle->links; dl; dl = dl->next) + if (dl->physical->fd == fd) { + datalink_Down(dl, CLOSE_NORMAL); + return 1; + } + + return 0; +} |