X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;ds=sidebyside;f=pppd%2Fmain.c;h=3273cdf9aa32412a282bafdafb54758b6dd1f9b9;hb=d360980f566acea27d4b61566ded5cb064559cca;hp=ed73a12b0b9ccad87116fd3fc5940b8359e8cdde;hpb=8770e3b90ea3f4b2283fcda7a8339b6698381e3f;p=ppp.git diff --git a/pppd/main.c b/pppd/main.c index ed73a12..3273cdf 100644 --- a/pppd/main.c +++ b/pppd/main.c @@ -18,7 +18,7 @@ */ #ifndef lint -static char rcsid[] = "$Id: main.c,v 1.42 1997/07/14 03:53:25 paulus Exp $"; +static char rcsid[] = "$Id: main.c,v 1.44 1998/02/04 01:40:59 paulus Exp $"; #endif #include @@ -40,7 +40,6 @@ static char rcsid[] = "$Id: main.c,v 1.42 1997/07/14 03:53:25 paulus Exp $"; #include #include #include -#include #include "pppd.h" #include "magic.h" @@ -69,7 +68,7 @@ extern char *strerror(); #endif /* interface vars */ -char ifname[IFNAMSIZ]; /* Interface name */ +char ifname[32]; /* Interface name */ int ifunit; /* Interface unit number */ char *progname; /* Name of this program */ @@ -161,7 +160,7 @@ main(argc, argv) int argc; char *argv[]; { - int i, nonblock, fdflags; + int i, fdflags; struct sigaction sa; FILE *pidfile; char *p; @@ -449,18 +448,21 @@ main(argc, argv) } else tty_mode = statbuf.st_mode; - /* - * Set line speed, flow control, etc. - * Previously, if we had a connection script, we would set CLOCAL - * while the script was running. But then, if CD was negated - * before the script finished, we would miss it. - */ - set_up_tty(ttyfd, 0); - /* run connection script */ if (connector && connector[0]) { MAINDEBUG((LOG_INFO, "Connecting with <%s>", connector)); + /* + * Set line speed, flow control, etc. + * On most systems we set CLOCAL for now so that we can talk + * to the modem before carrier comes up. But this has the + * side effect that we might miss it if CD drops before we + * get to clear CLOCAL below. On systems where we can talk + * successfully to the modem with CLOCAL clear and CD down, + * we can clear CLOCAL at this point. + */ + set_up_tty(ttyfd, 1); + /* drop dtr to hang up in case modem is off hook */ if (!default_device && modem) { setdtr(ttyfd, FALSE); @@ -474,10 +476,14 @@ main(argc, argv) goto fail; } + syslog(LOG_INFO, "Serial connection established."); sleep(1); /* give it time to set up its terminal */ } + /* set line speed, flow control, etc.; clear CLOCAL if modem option */ + set_up_tty(ttyfd, 0); + /* reopen tty if necessary to wait for carrier */ if (connector == NULL && modem) { while ((i = open(devnam, O_RDWR)) < 0) { @@ -579,7 +585,7 @@ main(argc, argv) } if (!persist) - break; + die(1); if (demand) demand_discard();