X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=pppd%2Fsys-sunos4.c;h=68976414e1cd182baceac5404e446947ab2770a3;hb=26703b215b0b68d7005e6b5e41d744101471a743;hp=60493fed26df855811ce6777c566d2196b79434e;hpb=e8be982dbc5c6c50dfc9f66737867570c8ed4973;p=ppp.git diff --git a/pppd/sys-sunos4.c b/pppd/sys-sunos4.c index 60493fe..6897641 100644 --- a/pppd/sys-sunos4.c +++ b/pppd/sys-sunos4.c @@ -25,9 +25,7 @@ * OR MODIFICATIONS. */ -#ifndef lint -static char rcsid[] = "$Id: sys-sunos4.c,v 1.20 1999/04/12 06:24:51 paulus Exp $"; -#endif +#define RCSID "$Id: sys-sunos4.c,v 1.25 1999/12/23 01:38:19 paulus Exp $" #include #include @@ -67,6 +65,8 @@ extern void *alloca(); #endif #endif /*sparc*/ +static const char rcsid[] = RCSID; + static int pppfd; static int fdmuxid = -1; static int iffd; @@ -614,8 +614,13 @@ wait_input(timo) int t; t = timo == NULL? -1: timo->tv_sec * 1000 + timo->tv_usec / 1000; - if (poll(pollfds, n_pollfds, t) < 0 && errno != EINTR) - fatal("poll: %m"); + if (poll(pollfds, n_pollfds, t) < 0 && errno != EINTR) { + if (errno != EAGAIN) + fatal("poll: %m"); + /* we can get EAGAIN on a heavily loaded system, + * just wait a short time and try again. */ + usleep(50000); + } } /* @@ -703,7 +708,7 @@ read_packet(buf) flags = 0; len = getmsg(pppfd, &ctrl, &data, &flags); if (len < 0) { - if (errno = EAGAIN || errno == EINTR) + if (errno == EAGAIN || errno == EINTR) return -1; fatal("Error reading packet: %m"); } @@ -1377,6 +1382,7 @@ get_host_seed() return gethostid(); } +#if 0 /* * Code for locking/unlocking the serial device. * This code is derived from chat.c. @@ -1480,6 +1486,7 @@ unlock() lock_file = NULL; } } +#endif /* lock stuff removed */ /* * get_pty - get a pty master/slave pair and chown the slave side