-
- if (CtdlGetConfigInt("c_auth_mode") == AUTHMODE_HOST) {
-
- /* host auth mode */
-
- struct passwd pd;
- struct passwd *tempPwdPtr;
- char pwdbuffer[SIZ];
-
-#ifdef HAVE_GETPWNAM_R
-#ifdef SOLARIS_GETPWUID
- tempPwdPtr = getpwnam_r(username, &pd, pwdbuffer, sizeof(pwdbuffer));
-#else // SOLARIS_GETPWUID
- getpwnam_r(username, &pd, pwdbuffer, sizeof pwdbuffer, &tempPwdPtr);
-#endif // SOLARIS_GETPWUID
-#else // HAVE_GETPWNAM_R
- tempPwdPtr = NULL;
-#endif // HAVE_GETPWNAM_R
- if (tempPwdPtr != NULL) {
- extract_token(username, pd.pw_gecos, 0, ',', sizeof username);
- uid = pd.pw_uid;
- if (IsEmptyStr (username))
- {
- safestrncpy(username, pd.pw_name, sizeof username);
- }
- }
- else {
- return (ERROR + NO_SUCH_USER);
- }
- }
-
-#ifdef HAVE_LDAP
- if ((CtdlGetConfigInt("c_auth_mode") == AUTHMODE_LDAP) || (CtdlGetConfigInt("c_auth_mode") == AUTHMODE_LDAP_AD)) {
- if (CtdlTryUserLDAP(username, NULL, 0, username, sizeof username, &uid, 0) != 0) {
- return(ERROR + NO_SUCH_USER);
- }
- }
-#endif /* HAVE_LDAP */
-