1
0
mirror of https://github.com/osmarks/ngircd.git synced 2024-10-27 20:36:18 +00:00

Use server password when PAM is compiled in but disabled

(cherry picked from commit 485d0aec81)

Conflicts:
	src/ngircd/conf.c
This commit is contained in:
Roy Sindre Norangshol 2014-02-27 00:21:18 +01:00 committed by Alexander Barton
parent a3ad2927cc
commit 9a05c1145d
2 changed files with 29 additions and 29 deletions

View File

@ -369,9 +369,8 @@ Conf_Test( void )
printf(" MotdPhrase = %s\n", array_bytes(&Conf_Motd)
? (const char*) array_start(&Conf_Motd) : "");
}
#ifndef PAM
if (!Conf_PAM)
printf(" Password = %s\n", Conf_ServerPwd);
#endif
printf(" PidFile = %s\n", Conf_PidFile);
printf(" Ports = ");
ports_puts(&Conf_ListenPorts);
@ -2247,7 +2246,7 @@ Validate_Config(bool Configtest, bool Rehash)
}
#ifdef PAM
if (Conf_ServerPwd[0])
if (Conf_PAM && Conf_ServerPwd[0])
Config_Error(LOG_ERR,
"This server uses PAM, \"Password\" in [Global] section will be ignored!");
#endif

View File

@ -91,13 +91,12 @@ Login_User(CLIENT * Client)
#ifdef PAM
if (!Conf_PAM) {
/* Don't do any PAM authentication at all, instead emulate
* the behavior of the daemon compiled without PAM support:
* because there can't be any "server password", all
* passwords supplied are classified as "wrong". */
if(Conn_Password(conn)[0] == '\0')
/* Don't do any PAM authentication at all if PAM is not
* enabled, instead emulate the behavior of the daemon
* compiled without PAM support. */
if (strcmp(Conn_Password(conn), Conf_ServerPwd) == 0)
return Login_User_PostAuth(Client);
Client_Reject(Client, "Non-empty password", false);
Client_Reject(Client, "Bad server password", false);
return DISCONNECTED;
}
@ -111,6 +110,7 @@ Login_User(CLIENT * Client)
return Login_User_PostAuth(Client);
}
if (Conf_PAM) {
/* Fork child process for PAM authentication; and make sure that the
* process timeout is set higher than the login timeout! */
pid = Proc_Fork(Conn_GetProcStat(conn), pipefd,
@ -130,6 +130,7 @@ Login_User(CLIENT * Client)
Log_Exit_Subprocess("Auth");
exit(0);
}
} else return CONNECTED;
#else
/* Check global server password ... */
if (strcmp(Conn_Password(conn), Conf_ServerPwd) != 0) {