summaryrefslogtreecommitdiffstats
path: root/usr.sbin/ppp/bundle.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/bundle.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/bundle.c')
-rw-r--r--usr.sbin/ppp/bundle.c16
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;
+}
OpenPOWER on IntegriCloud