X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=pppd%2Fsys-str.c;h=030ad58c8eb209fd2bd643c3deeffdfe60a62266;hb=e46557418647a48bb018edf58a2bdb6ff9e57ef6;hp=051f10dd306bd4ab688671ca0deee61eaa34dbd1;hpb=800ac338fdfc693ce08ede826907d7137c2c6f55;p=ppp.git diff --git a/pppd/sys-str.c b/pppd/sys-str.c index 051f10d..030ad58 100644 --- a/pppd/sys-str.c +++ b/pppd/sys-str.c @@ -19,7 +19,7 @@ */ #ifndef lint -static char rcsid[] = "$Id: sys-str.c,v 1.18 1995/04/27 00:35:43 paulus Exp $"; +static char rcsid[] = "$Id: sys-str.c,v 1.21 1995/06/12 12:18:04 paulus Exp $"; #endif /* @@ -452,6 +452,15 @@ void restore_tty() { if (restore_term) { + if (!default_device) { + /* + * Turn off echoing, because otherwise we can get into + * a loop with the tty and the modem echoing to each other. + * We presume we are the sole user of this tty device, so + * when we close it, it will revert to its defaults anyway. + */ + inittermios.c_lflag &= ~(ECHO | ECHONL); + } if (tcsetattr(fd, TCSAFLUSH, &inittermios) < 0) if (errno != ENXIO) syslog(LOG_WARNING, "tcsetattr: %m"); @@ -1107,6 +1116,8 @@ logwtmp(line, name, host) * network as `addr'. If we find any, we OR in their netmask to the * user-specified netmask. */ +#define MAX_IFS 32 + u_int32_t GetMask(addr) u_int32_t addr; @@ -1136,8 +1147,7 @@ GetMask(addr) return mask; } ifend = (struct ifreq *) (ifc.ifc_buf + ifc.ifc_len); - for (ifr = ifc.ifc_req; ifr < ifend; ifr = (struct ifreq *) - ((char *)&ifr->ifr_addr + ifr->ifr_addr.sa_len)) { + for (ifr = ifc.ifc_req; ifr < ifend; ++ifr) { /* * Check the interface's internet address. */ @@ -1265,3 +1275,14 @@ unlock() lock_file = NULL; } } + +/* + * SunOS doesn't have strtoul :-( + */ +unsigned long +strtoul(str, ptr, base) + char *str, **ptr; + int base; +{ + return (unsigned long) strtol(str, ptr, base); +}