]> git.ozlabs.org Git - ppp.git/blobdiff - pppd/main.c
ChapMS_LANMan(): update for new definition MS_ChapResponse/ChallengeResponse().
[ppp.git] / pppd / main.c
index 16231db75ead75a846022061d3a9a4d4c2395306..25a0379e3cdc71da307160a32de731a86e666e47 100644 (file)
@@ -17,7 +17,7 @@
  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  */
 
-#define RCSID  "$Id: main.c,v 1.112 2002/02/12 20:07:09 dfs Exp $"
+#define RCSID  "$Id: main.c,v 1.119 2002/11/02 19:48:12 carlsonj Exp $"
 
 #include <stdio.h>
 #include <ctype.h>
@@ -52,7 +52,9 @@
 #endif
 #include "upap.h"
 #include "chap.h"
+#include "eap.h"
 #include "ccp.h"
+#include "ecp.h"
 #include "pathnames.h"
 
 #ifdef USE_TDB
@@ -83,7 +85,6 @@ char hostname[MAXNAMELEN];    /* Our hostname */
 static char pidfilename[MAXPATHLEN];   /* name of pid file */
 static char linkpidfile[MAXPATHLEN];   /* name of linkname pid file */
 char ppp_devnam[MAXPATHLEN];   /* name of PPP tty (maybe ttypx) */
-char remote_number[MAXNAMELEN]; /* Remote telephone number, if available */
 uid_t uid;                     /* Our real user-id */
 struct notifier *pidchange = NULL;
 struct notifier *phasechange = NULL;
@@ -146,7 +147,7 @@ int ngroups;                        /* How many groups valid in groups */
 static struct timeval start_time;      /* Time when link was started. */
 
 struct pppd_stats link_stats;
-int link_connect_time;
+unsigned link_connect_time;
 int link_stats_valid;
 
 /*
@@ -222,12 +223,14 @@ struct protent *protocols[] = {
     &ipv6cp_protent,
 #endif
     &ccp_protent,
+    &ecp_protent,
 #ifdef IPX_CHANGE
     &ipxcp_protent,
 #endif
 #ifdef AT_CHANGE
     &atcp_protent,
 #endif
+    &eap_protent,
     NULL
 };
 
@@ -359,10 +362,19 @@ main(argc, argv)
        init_pr_log(NULL, LOG_INFO);
        print_options(pr_log, NULL);
        end_pr_log();
-       if (dryrun)
-           die(0);
     }
 
+    /*
+     * Early check for remote number authorization.
+     */
+    if (!auth_number()) {
+       warn("calling number %q is not authorized", remote_number);
+       exit(EXIT_CNID_AUTH_FAILED);
+    }
+
+    if (dryrun)
+       die(0);
+
     /*
      * Initialize system-dependent stuff.
      */
@@ -980,7 +992,7 @@ get_input()
      * Toss all non-LCP packets unless LCP is OPEN.
      */
     if (protocol != PPP_LCP && lcp_fsm[0].state != OPENED) {
-       MAINDEBUG(("get_input: Received non-LCP packet when LCP not open."));
+       dbglog("Discarded non-LCP packet when LCP not open");
        return;
     }
 
@@ -990,9 +1002,10 @@ get_input()
      */
     if (phase <= PHASE_AUTHENTICATE
        && !(protocol == PPP_LCP || protocol == PPP_LQR
-            || protocol == PPP_PAP || protocol == PPP_CHAP)) {
-       MAINDEBUG(("get_input: discarding proto 0x%x in phase %d",
-                  protocol, phase));
+            || protocol == PPP_PAP || protocol == PPP_CHAP ||
+               protocol == PPP_EAP)) {
+       dbglog("discarding proto 0x%x in phase %d",
+                  protocol, phase);
        return;
     }
 
@@ -1106,11 +1119,11 @@ update_link_stats(u)
     link_connect_time = now.tv_sec - start_time.tv_sec;
     link_stats_valid = 1;
 
-    slprintf(numbuf, sizeof(numbuf), "%d", link_connect_time);
+    slprintf(numbuf, sizeof(numbuf), "%u", link_connect_time);
     script_setenv("CONNECT_TIME", numbuf, 0);
-    slprintf(numbuf, sizeof(numbuf), "%d", link_stats.bytes_out);
+    slprintf(numbuf, sizeof(numbuf), "%u", link_stats.bytes_out);
     script_setenv("BYTES_SENT", numbuf, 0);
-    slprintf(numbuf, sizeof(numbuf), "%d", link_stats.bytes_in);
+    slprintf(numbuf, sizeof(numbuf), "%u", link_stats.bytes_in);
     script_setenv("BYTES_RCVD", numbuf, 0);
 }
 
@@ -1671,7 +1684,7 @@ remove_notifier(notif, func, arg)
 }
 
 /*
- * notify - call a set of functions registered with add_notify.
+ * notify - call a set of functions registered with add_notifier.
  */
 void
 notify(notif, val)