return DISCONNECTED;
}
- pid = Proc_Fork(Conn_GetProcStat(conn), pipefd, cb_Read_Auth_Result);
+ /* 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,
+ cb_Read_Auth_Result, Conf_PongTimeout + 1);
if (pid > 0) {
LogDebug("Authenticator for connection %d created (PID %d).",
conn, pid);
if (len == 0)
return;
- /* Make sure authenticator sub-process is dead now ... */
- Proc_Kill(proc);
-
if (len != sizeof(result)) {
Log(LOG_CRIT, "Auth: Got malformed result!");
Reject_Client(client);
return;
}
- if (result == true)
+ if (result == true) {
+ Client_SetUser(client, Client_OrigUser(client), true);
(void)Hello_User_PostAuth(client);
- else
+ } else
Reject_Client(client);
}