+2006-04-28 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/s_auth.c (AuthRequest): Clarify comment on 'timeout' field.
+ (check_auth_finished): Fix timeout update.
+ (destroy_auth_request): Only delete timer if it is active.
+ (auth_timeout_callback): Do not disconnect client on timeout, so
+ that the user can finish sending NICK/USER or doing iauth.
+
2006-04-28 Michael Poole <mdpoole@troilus.org>
* doc/example.conf (Admin): Fix documentation of which line can be
struct irc_sockaddr local; /**< local endpoint address */
struct irc_in_addr original; /**< original client IP address */
struct Socket socket; /**< socket descriptor for auth queries */
- struct Timer timeout; /**< timeout timer for auth queries */
+ struct Timer timeout; /**< timeout timer for ident and dns queries */
struct AuthRequestFlags flags; /**< current state of request */
unsigned int cookie; /**< cookie the user must PONG */
unsigned short port; /**< client's remote port number */
/* If iauth wants it, give client more time. */
if (IAuthHas(iauth, IAUTH_EXTRAWAIT))
- timer_chg(&auth->timeout, TT_RELATIVE, feature_int(FEAT_AUTH_TIMEOUT));
+ cli_firsttime(auth->client) = CurrentTime;
}
Debug((DEBUG_INFO, "Auth %p [%d] still has flag %d", auth,
else
FlagSet(&auth->flags, AR_IAUTH_HURRY);
-
destroy_auth_request(auth, send_reports);
if (!IsUserPort(auth->client))
return 0;
s_fd(&auth->socket) = -1;
}
- timer_del(&auth->timeout);
+ if (t_active(&auth->timeout))
+ timer_del(&auth->timeout);
cli_auth(auth->client) = NULL;
}
}
/* Try to register the client. */
check_auth_finished(auth, 1);
- /* If that failed, kick them off. */
- if (!IsUser(auth->client))
- exit_client(auth->client, auth->client, &me, "Authorization timed out");
}
}