summaryrefslogtreecommitdiffstats
path: root/usr.sbin/ppp/main.c
diff options
context:
space:
mode:
authorbrian <brian@FreeBSD.org>1998-12-10 18:36:30 +0000
committerbrian <brian@FreeBSD.org>1998-12-10 18:36:30 +0000
commitba9233fa15b32ca12a7ce20239c3149b7d185bc0 (patch)
tree24a566946a43166b40eb8f90121bc6bc92bde18f /usr.sbin/ppp/main.c
parent578a7c33753075a3c31c8ceee8d4af48b7ac0c5e (diff)
downloadFreeBSD-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/main.c')
-rw-r--r--usr.sbin/ppp/main.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/usr.sbin/ppp/main.c b/usr.sbin/ppp/main.c
index 218d193..b9cf61d 100644
--- a/usr.sbin/ppp/main.c
+++ b/usr.sbin/ppp/main.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: main.c,v 1.144 1998/10/22 02:32:49 brian Exp $
+ * $Id: main.c,v 1.145 1998/10/31 17:38:46 brian Exp $
*
* TODO:
*/
@@ -515,8 +515,12 @@ DoLoop(struct bundle *bundle)
for (i = 0; i <= nfds; i++)
if (FD_ISSET(i, &efds)) {
- log_Printf(LogERROR, "Exception detected on descriptor %d\n", i);
- break;
+ log_Printf(LogPHASE, "Exception detected on descriptor %d\n", i);
+ /* We deal gracefully with link descriptor exceptions */
+ if (!bundle_Exception(bundle, i)) {
+ log_Printf(LogERROR, "Exception cannot be handled !\n");
+ break;
+ }
}
if (i <= nfds)
OpenPOWER on IntegriCloud