]> git.ozlabs.org Git - ppp.git/blobdiff - pppd/auth.c
document exit status values and link stats env vars
[ppp.git] / pppd / auth.c
index e26d36af94aefd947d6cfcc1c8d63d54245fcf96..c51a67d975501cad52673bb38b1f43cb357f538c 100644 (file)
@@ -33,7 +33,7 @@
  */
 
 #ifndef lint
-static char rcsid[] = "$Id: auth.c,v 1.49 1999/03/31 05:39:42 paulus Exp $";
+static char rcsid[] = "$Id: auth.c,v 1.53 1999/05/13 00:33:05 paulus Exp $";
 #endif
 
 #include <stdio.h>
@@ -367,6 +367,7 @@ link_established(unit)
        if (!wo->neg_upap || !null_login(unit)) {
            warn("peer refused to authenticate: terminating link");
            lcp_close(unit, "peer refused to authenticate");
+           status = EXIT_PEER_AUTH_FAILED;
            return;
        }
     }
@@ -460,6 +461,7 @@ auth_peer_fail(unit, protocol)
      * Authentication failure: take the link down
      */
     lcp_close(unit, "Authentication failed");
+    status = EXIT_PEER_AUTH_FAILED;
 }
 
 /*
@@ -562,6 +564,7 @@ np_up(unit, proto)
         * At this point we consider that the link has come up successfully.
         */
        need_holdoff = 0;
+       status = EXIT_OK;
 
        if (idle_time_limit > 0)
            TIMEOUT(check_idle, NULL, idle_time_limit);
@@ -623,8 +626,9 @@ check_idle(arg)
     itime = MIN(idle.xmit_idle, idle.recv_idle);
     if (itime >= idle_time_limit) {
        /* link is idle: shut it down. */
-       info("Terminating connection due to lack of activity.");
+       notice("Terminating connection due to lack of activity.");
        lcp_close(0, "Link inactive");
+       status = EXIT_IDLE_TIMEOUT;
     } else {
        TIMEOUT(check_idle, NULL, idle_time_limit - itime);
     }
@@ -639,6 +643,7 @@ connect_time_expired(arg)
 {
     info("Connect time expired");
     lcp_close(0, "Connect time expired");      /* Close connection */
+    status = EXIT_CONNECT_TIME;
 }
 
 /*
@@ -785,7 +790,8 @@ check_passwd(unit, auser, userlen, apasswd, passwdlen, msg, msglen)
     } else {
        check_access(f, filename);
        if (scan_authfile(f, user, our_name, secret, &addrs, filename) < 0
-           || (secret[0] != 0 && (cryptpap || strcmp(passwd, secret) != 0)
+           || (!uselogin && secret[0] != 0
+               && (cryptpap || strcmp(passwd, secret) != 0)
                && strcmp(crypt(passwd, secret), secret) != 0)) {
            warn("PAP authentication failure for %s", user);
            ret = UPAP_AUTHNAK;
@@ -1016,7 +1022,7 @@ plogin(user, passwd, msg, msglen)
                (void)lseek(fd, (off_t)(pw->pw_uid * sizeof(ll)), SEEK_SET);
                memset((void *)&ll, 0, sizeof(ll));
                (void)time(&ll.ll_time);
-               (void)strlcpy(ll.ll_line, tty, sizeof(ll.ll_line));
+               (void)strncpy(ll.ll_line, tty, sizeof(ll.ll_line));
                (void)write(fd, (char *)&ll, sizeof(ll));
                (void)close(fd);
            }