X-Git-Url: http://git.ozlabs.org/?p=ppp.git;a=blobdiff_plain;f=pppd%2Fsys-bsd.c;h=88d22848272ab7461254e38348e16b513ad64f44;hp=22ba04dbd3c6269e4f459019b9833eb682244410;hb=44e1777caa7658b455b5269f895734a5c33d2246;hpb=b03e0f44811d84b0be229b0f8498b275d0b2e386 diff --git a/pppd/sys-bsd.c b/pppd/sys-bsd.c index 22ba04d..88d2284 100644 --- a/pppd/sys-bsd.c +++ b/pppd/sys-bsd.c @@ -21,8 +21,9 @@ */ #ifndef lint -static char rcsid[] = "$Id: sys-bsd.c,v 1.30 1998/03/25 02:19:26 paulus Exp $"; +static char rcsid[] = "$Id: sys-bsd.c,v 1.33 1998/09/04 18:49:16 christos Exp $"; /* $NetBSD: sys-bsd.c,v 1.1.1.3 1997/09/26 18:53:04 christos Exp $ */ +#endif /* * TODO: @@ -62,9 +63,13 @@ static char rcsid[] = "$Id: sys-bsd.c,v 1.30 1998/03/25 02:19:26 paulus Exp $"; #if defined(NetBSD) && (NetBSD >= 199703) #include #else /* NetBSD 1.2D or later */ +#ifdef __FreeBSD__ +#include +#else #include #endif #endif +#endif #include "pppd.h" #include "fsm.h" @@ -380,10 +385,22 @@ set_up_tty(fd, local) } tios.c_cflag &= ~(CSIZE | CSTOPB | PARENB | CLOCAL); - if (crtscts > 0 && !local) - tios.c_cflag |= CRTSCTS; - else if (crtscts < 0) + if (crtscts > 0 && !local) { + if (crtscts == 2) { +#ifdef CDTRCTS + tios.c_cflag |= CDTRCTS; +#else + syslog(LOG_ERR, "System does not support DTR/CTS flow control"); + die(1); +#endif + } else + tios.c_cflag |= CRTSCTS; + } else if (crtscts < 0) { tios.c_cflag &= ~CRTSCTS; +#ifdef CDTRCTS + tios.c_cflag &= ~CDTRCTS; +#endif + } tios.c_cflag |= CS8 | CREAD | HUPCL; if (local || !modem) @@ -1055,7 +1072,7 @@ dodefaultroute(g, cmd) memset(&rtmsg, 0, sizeof(rtmsg)); rtmsg.hdr.rtm_type = cmd == 's'? RTM_ADD: RTM_DELETE; - rtmsg.hdr.rtm_flags = RTF_UP | RTF_GATEWAY; + rtmsg.hdr.rtm_flags = RTF_UP | RTF_GATEWAY | RTF_STATIC; rtmsg.hdr.rtm_version = RTM_VERSION; rtmsg.hdr.rtm_seq = ++rtm_seq; rtmsg.hdr.rtm_addrs = RTA_DST | RTA_GATEWAY | RTA_NETMASK;