X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=pppd%2Fmain.c;h=a09590e9509341cb33cc6955f1163b8c8a5b6e50;hb=e59b06f904eb25935f8223c80bb1f07dab26933e;hp=24f88ec9934b588866713b1b790fc02c2ca37b13;hpb=37a8acc7ee2527693d0c8ba82b2eaea249abde34;p=ppp.git diff --git a/pppd/main.c b/pppd/main.c index 24f88ec..a09590e 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.103 2001/03/08 05:11:14 paulus Exp $" +#define RCSID "$Id: main.c,v 1.107 2001/05/23 03:39:13 paulus Exp $" #include #include @@ -304,11 +304,8 @@ main(argc, argv) if (the_channel->process_extra_options) (*the_channel->process_extra_options)(); - if (dump_options || dryrun) { - init_pr_log(NULL, LOG_INFO); - print_options(pr_log, NULL); - end_pr_log(); - } + if (debug) + setlogmask(LOG_UPTO(LOG_DEBUG)); /* * Check that we are running as root. @@ -340,15 +337,19 @@ main(argc, argv) if (the_channel->check_options) (*the_channel->check_options)(); + + if (dump_options || dryrun) { + init_pr_log(NULL, LOG_INFO); + print_options(pr_log, NULL); + end_pr_log(); + if (dryrun) + die(0); + } + /* * Initialize system-dependent stuff. */ sys_init(); - if (debug) - setlogmask(LOG_UPTO(LOG_DEBUG)); - - if (dryrun) - die(0); pppdb = tdb_open(_PATH_PPPDB, 0, 0, O_RDWR|O_CREAT, 0644); if (pppdb != NULL) { @@ -452,7 +453,7 @@ main(argc, argv) /* set up the serial device as a ppp interface */ tdb_writelock(pppdb); - fd_ppp = establish_ppp(devfd); + fd_ppp = the_channel->establish_ppp(devfd); if (fd_ppp < 0) { tdb_writeunlock(pppdb); status = EXIT_FATAL_ERROR; @@ -467,7 +468,10 @@ main(argc, argv) * Start opening the connection and wait for * incoming events (reply, timeout, etc.). */ - notice("Connect: %s <--> %s", ifname, ppp_devnam); + if (ifunit >= 0) + notice("Connect: %s <--> %s", ifname, ppp_devnam); + else + notice("Starting negotiation on %s", ppp_devnam); gettimeofday(&start_time, NULL); link_stats_valid = 0; script_unsetenv("CONNECT_TIME"); @@ -498,7 +502,7 @@ main(argc, argv) if (link_stats_valid) { int t = (link_connect_time + 5) / 6; /* 1/10ths of minutes */ info("Connect time %d.%d minutes.", t/10, t%10); - info("Sent %d bytes, received %d bytes.", + info("Sent %u bytes, received %u bytes.", link_stats.bytes_out, link_stats.bytes_in); } @@ -521,9 +525,7 @@ main(argc, argv) */ remove_fd(fd_ppp); clean_check(); - if (demand) - restore_loop(); - disestablish_ppp(devfd); /* XXX */ + the_channel->disestablish_ppp(devfd); fd_ppp = -1; if (!hungup) lcp_lowerdown(0); @@ -943,14 +945,13 @@ get_input() return; } - if (debug /*&& (debugflags & DBG_INPACKET)*/) - dbglog("rcvd %P", p, len); - if (len < PPP_HDRLEN) { - MAINDEBUG(("io(): Received short packet.")); + dbglog("received short packet:%.*B", len, p); return; } + dump_packet("rcvd", p, len); + p += 2; /* Skip address and control */ GETSHORT(protocol, p); len -= PPP_HDRLEN; @@ -1036,7 +1037,7 @@ cleanup() sys_cleanup(); if (fd_ppp >= 0) - disestablish_ppp(devfd); + the_channel->disestablish_ppp(devfd); if (the_channel->cleanup) (*the_channel->cleanup)(); @@ -1088,9 +1089,6 @@ static struct timeval timenow; /* Current time */ /* * timeout - Schedule a timeout. - * - * Note that this timeout takes the number of milliseconds, NOT hz (as in - * the kernel). */ void timeout(func, arg, secs, usecs) @@ -1099,10 +1097,10 @@ timeout(func, arg, secs, usecs) int secs, usecs; { struct callout *newp, *p, **pp; - + MAINDEBUG(("Timeout %p:%p in %d.%03d seconds.", func, arg, - time / 1000, time % 1000)); - + secs, usecs/1000)); + /* * Allocate timeout. */