]> git.ozlabs.org Git - ppp.git/blobdiff - pppd/sys-sunos4.c
Rework options processing stuff to implement option priorities
[ppp.git] / pppd / sys-sunos4.c
index 558e2f902e40a09b722370413137ed1d0c34dd96..68976414e1cd182baceac5404e446947ab2770a3 100644 (file)
@@ -25,9 +25,7 @@
  * OR MODIFICATIONS.
  */
 
-#ifndef lint
-static char rcsid[] = "$Id: sys-sunos4.c,v 1.22 1999/06/24 00:17:18 paulus Exp $";
-#endif
+#define RCSID  "$Id: sys-sunos4.c,v 1.25 1999/12/23 01:38:19 paulus Exp $"
 
 #include <stdio.h>
 #include <stddef.h>
@@ -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);
+    }
 }
 
 /*