datalink.c (91623) | datalink.c (93418) |
---|---|
1/*- 2 * Copyright (c) 1998 Brian Somers <brian@Awfulhak.org> 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 9 unchanged lines hidden (view full) --- 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * | 1/*- 2 * Copyright (c) 1998 Brian Somers <brian@Awfulhak.org> 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 9 unchanged lines hidden (view full) --- 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * |
26 * $FreeBSD: head/usr.sbin/ppp/datalink.c 91623 2002-03-04 10:08:57Z brian $ | 26 * $FreeBSD: head/usr.sbin/ppp/datalink.c 93418 2002-03-30 12:30:09Z brian $ |
27 */ 28 29#include <sys/param.h> 30#include <netinet/in.h> 31#include <netinet/in_systm.h> 32#include <netinet/ip.h> 33#include <sys/socket.h> 34#include <sys/un.h> --- 449 unchanged lines hidden (view full) --- 484 case DATALINK_CLOSED: 485 case DATALINK_OPENING: 486 break; 487 488 case DATALINK_HANGUP: 489 case DATALINK_DIAL: 490 case DATALINK_LOGOUT: 491 case DATALINK_LOGIN: | 27 */ 28 29#include <sys/param.h> 30#include <netinet/in.h> 31#include <netinet/in_systm.h> 32#include <netinet/ip.h> 33#include <sys/socket.h> 34#include <sys/un.h> --- 449 unchanged lines hidden (view full) --- 484 case DATALINK_CLOSED: 485 case DATALINK_OPENING: 486 break; 487 488 case DATALINK_HANGUP: 489 case DATALINK_DIAL: 490 case DATALINK_LOGOUT: 491 case DATALINK_LOGIN: |
492 result = descriptor_Write(&dl->chat.desc, bundle, fdset); | 492 if ((result = descriptor_Write(&dl->chat.desc, bundle, fdset)) == -1) { 493 datalink_ComeDown(dl, CLOSE_NORMAL); 494 result = 0; 495 } |
493 break; 494 495 case DATALINK_READY: 496 case DATALINK_LCP: 497 case DATALINK_AUTH: 498 case DATALINK_CBCP: 499 case DATALINK_OPEN: 500 if (descriptor_IsSet(&dl->chap.desc, fdset)) | 496 break; 497 498 case DATALINK_READY: 499 case DATALINK_LCP: 500 case DATALINK_AUTH: 501 case DATALINK_CBCP: 502 case DATALINK_OPEN: 503 if (descriptor_IsSet(&dl->chap.desc, fdset)) |
501 result += descriptor_Write(&dl->chap.desc, bundle, fdset); | 504 switch (descriptor_Write(&dl->chap.desc, bundle, fdset)) { 505 case -1: 506 datalink_ComeDown(dl, CLOSE_NORMAL); 507 break; 508 case 1: 509 result++; 510 } |
502 if (descriptor_IsSet(&dl->physical->desc, fdset)) | 511 if (descriptor_IsSet(&dl->physical->desc, fdset)) |
503 result += descriptor_Write(&dl->physical->desc, bundle, fdset); | 512 switch (descriptor_Write(&dl->physical->desc, bundle, fdset)) { 513 case -1: 514 datalink_ComeDown(dl, CLOSE_NORMAL); 515 break; 516 case 1: 517 result++; 518 } |
504 break; 505 } 506 507 return result; 508} 509 | 519 break; 520 } 521 522 return result; 523} 524 |
510static void | 525void |
511datalink_ComeDown(struct datalink *dl, int how) 512{ 513 int stayonline; 514 515 if (how == CLOSE_LCP) 516 datalink_DontHangup(dl); 517 else if (how == CLOSE_STAYDOWN) 518 datalink_StayDown(dl); --- 936 unchanged lines hidden --- | 526datalink_ComeDown(struct datalink *dl, int how) 527{ 528 int stayonline; 529 530 if (how == CLOSE_LCP) 531 datalink_DontHangup(dl); 532 else if (how == CLOSE_STAYDOWN) 533 datalink_StayDown(dl); --- 936 unchanged lines hidden --- |