X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=pppd%2Fsession.c;h=8ab5b8b294d7f37ddd95c865fe37a3dca70b630e;hb=bdd34ab1f2f87acb23c6d92feee7354ac53005ff;hp=2f1c83e5552cd3afd59813e82d6b8bdf3de6294b;hpb=6531eb055818ea1b4df386b3e7132392771cd0e5;p=ppp.git diff --git a/pppd/session.c b/pppd/session.c index 2f1c83e..8ab5b8b 100644 --- a/pppd/session.c +++ b/pppd/session.c @@ -68,14 +68,23 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include #include + +#ifdef HAVE_CRYPT_H #include -#ifdef HAS_SHADOW +#endif + +#ifdef HAVE_SHADOW_H #include #endif + #include #include #include @@ -83,9 +92,9 @@ #include "pppd.h" #include "session.h" -#ifdef USE_PAM +#ifdef PPP_WITH_PAM #include -#endif /* #ifdef USE_PAM */ +#endif /* #ifdef PPP_WITH_PAM */ #define SET_MSG(var, msg) if (var != NULL) { var[0] = msg; } #define COPY_STRING(s) ((s) ? strdup(s) : NULL) @@ -100,7 +109,7 @@ /* We have successfully started a session */ static bool logged_in = 0; -#ifdef USE_PAM +#ifdef PPP_WITH_PAM /* * Static variables used to communicate between the conversation function * and the server_login function @@ -158,25 +167,25 @@ static struct pam_conv pam_conv_data = { &conversation, NULL }; -#endif /* #ifdef USE_PAM */ +#endif /* #ifdef PPP_WITH_PAM */ int session_start(const int flags, const char *user, const char *passwd, const char *ttyName, char **msg) { -#ifdef USE_PAM +#ifdef PPP_WITH_PAM bool ok = 1; const char *usr; int pam_error; bool try_session = 0; -#else /* #ifdef USE_PAM */ +#else /* #ifdef PPP_WITH_PAM */ struct passwd *pw; char *cbuf; -#ifdef HAS_SHADOW +#ifdef HAVE_SHADOW_H struct spwd *spwd; struct spwd *getspnam(); long now = 0; -#endif /* #ifdef HAS_SHADOW */ -#endif /* #ifdef USE_PAM */ +#endif /* #ifdef HAVE_SHADOW_H */ +#endif /* #ifdef PPP_WITH_PAM */ SET_MSG(msg, SUCCESS_MSG); @@ -190,7 +199,7 @@ session_start(const int flags, const char *user, const char *passwd, const char return SESSION_FAILED; } -#ifdef USE_PAM +#ifdef PPP_WITH_PAM /* Find the '\\' in the username */ /* This needs to be fixed to support different username schemes */ if ((usr = strchr(user, '\\')) == NULL) @@ -286,7 +295,7 @@ session_start(const int flags, const char *user, const char *passwd, const char /* If our PAM checks have already failed, then we must return a failure */ if (!ok) return SESSION_FAILED; -#else /* #ifdef USE_PAM */ +#else /* #ifdef PPP_WITH_PAM */ /* * Use the non-PAM methods directly. 'pw' will remain NULL if the user @@ -305,7 +314,7 @@ session_start(const int flags, const char *user, const char *passwd, const char if (pw == NULL) return SESSION_FAILED; -#ifdef HAS_SHADOW +#ifdef HAVE_SHADOW_H spwd = getspnam(user); endspent(); @@ -336,19 +345,21 @@ session_start(const int flags, const char *user, const char *passwd, const char /* We have a valid shadow entry, keep the password */ pw->pw_passwd = spwd->sp_pwdp; -#endif /* #ifdef HAS_SHADOW */ +#endif /* #ifdef HAVE_SHADOW_H */ /* * If no passwd, don't let them login if we're authenticating. */ if (pw->pw_passwd == NULL || strlen(pw->pw_passwd) < 2) return SESSION_FAILED; +#ifdef HAVE_CRYPT_H cbuf = crypt(passwd, pw->pw_passwd); if (!cbuf || strcmp(cbuf, pw->pw_passwd) != 0) +#endif return SESSION_FAILED; } -#endif /* #ifdef USE_PAM */ +#endif /* #ifdef PPP_WITH_PAM */ /* * Write a wtmp entry for this user. @@ -360,7 +371,7 @@ session_start(const int flags, const char *user, const char *passwd, const char logwtmp(ttyName, user, ifname); /* Add wtmp login entry */ logged_in = 1; -#if defined(_PATH_LASTLOG) && !defined(USE_PAM) +#if defined(_PATH_LASTLOG) && !defined(PPP_WITH_PAM) /* * Enter the user in lastlog only if he has been authenticated using * local system services. If he has not, then we don't know what his @@ -382,7 +393,7 @@ session_start(const int flags, const char *user, const char *passwd, const char (void)close(fd); } } -#endif /* _PATH_LASTLOG and not USE_PAM */ +#endif /* _PATH_LASTLOG and not PPP_WITH_PAM */ info("user %s logged in on tty %s intf %s", user, ttyName, ifname); } @@ -395,7 +406,7 @@ session_start(const int flags, const char *user, const char *passwd, const char void session_end(const char* ttyName) { -#ifdef USE_PAM +#ifdef PPP_WITH_PAM int pam_error = PAM_SUCCESS; if (pamh != NULL) {