X-Git-Url: http://git.ozlabs.org/?p=ppp.git;a=blobdiff_plain;f=pppd%2Fmain.c;h=0722e9104076417b68500f16058a98f31f1e8f2d;hp=5e047d52c501f1d5ba2525fc0623e90e30429c88;hb=9b7089a0401b5d0973cace08f1f632d526a06377;hpb=cb01d0c72ce0b5f9fdaa3c8e76df7f9af952b788;ds=inline diff --git a/pppd/main.c b/pppd/main.c index 5e047d5..0722e91 100644 --- a/pppd/main.c +++ b/pppd/main.c @@ -17,7 +17,7 @@ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ -#define RCSID "$Id: main.c,v 1.96 2000/04/21 01:27:17 masputra Exp $" +#define RCSID "$Id: main.c,v 1.98 2000/04/29 12:32:59 paulus Exp $" #include #include @@ -1022,7 +1022,7 @@ void set_ifunit(iskey) int iskey; { - info("Using interface ppp%d", ifunit); + info("Using interface %s%d", PPP_DRV_NAME, ifunit); slprintf(ifname, sizeof(ifname), PPP_DRV_NAME "%d", ifunit); script_setenv("IFNAME", ifname, iskey); if (iskey) { @@ -2417,12 +2417,13 @@ charshunt(ifd, ofd, record_file) n = max_level - olevel; n = write(ofd, obufp, n); if (n < 0) { - if (errno != EIO) { + if (errno == EIO) { + pty_readable = 0; + nobuf = 0; + } else if (errno != EAGAIN && errno != EINTR) { error("Error writing standard output: %m"); break; } - pty_readable = 0; - nobuf = 0; } else { obufp += n; nobuf -= n; @@ -2435,12 +2436,13 @@ charshunt(ifd, ofd, record_file) n = max_level - ilevel; n = write(pty_master, ibufp, n); if (n < 0) { - if (errno != EIO) { + if (errno == EIO) { + stdin_readable = 0; + nibuf = 0; + } else if (errno != EAGAIN && errno != EINTR) { error("Error writing pseudo-tty master: %m"); break; } - stdin_readable = 0; - nibuf = 0; } else { ibufp += n; nibuf -= n;