//
// This program is open source software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License, version 3.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
#include <stdlib.h>
#include <unistd.h>
if (trythisname == NULL) return login_not_found;
- if (!strncasecmp(trythisname, "SYS_", 4)) {
- syslog(LOG_DEBUG, "user_ops: system user \"%s\" is not allowed to log in.", trythisname);
- return login_not_found;
- }
+ // We handle this a different way now (see below)
+ //if (!strncasecmp(trythisname, "SYS_", 4)) {
+ //syslog(LOG_DEBUG, "user_ops: system user \"%s\" is not allowed to log in.", trythisname);
+ //return login_not_found;
+ //}
// Continue attempting user validation...
safestrncpy(username, trythisname, sizeof (username));
- striplt(username);
+ string_trim(username);
if (IsEmptyStr(username)) {
return login_not_found;
syslog(LOG_DEBUG, "user_ops: asking host about <%s>", username);
#ifdef HAVE_GETPWNAM_R
-#ifdef SOLARIS_GETPWUID
- syslog(LOG_DEBUG, "user_ops: calling getpwnam_r()");
- tempPwdPtr = getpwnam_r(username, &pd, pwdbuffer, sizeof pwdbuffer);
-#else // SOLARIS_GETPWUID
syslog(LOG_DEBUG, "user_ops: calling getpwnam_r()");
getpwnam_r(username, &pd, pwdbuffer, sizeof pwdbuffer, &tempPwdPtr);
-#endif // SOLARIS_GETPWUID
#else // HAVE_GETPWNAM_R
syslog(LOG_DEBUG, "user_ops: SHOULD NEVER GET HERE!!!");
tempPwdPtr = NULL;
}
// User 0 is a system account and must not be used by a real user
- if (&CC->user.usernum <= 0) {
+ if (CC->user.usernum <= 0) {
+ syslog(LOG_DEBUG, "user_ops: system account <%s> is not allowed to log in.", trythisname);
return login_not_found;
}
}
-// Count the number of new mail messages the user has
+// Return the number of new messages that have arrived in the user's inbox while they were logged in.
+// Resets to zero when called.
int NewMailCount() {
int num_newmsgs = 0;
num_newmsgs = CC->newmail;