Committer : entrope
CVSROOT : /cvsroot/undernet-ircu
Module : ircu2.10
Branch tags: u2_10_12_branch
Commit time: 2006-04-29 02:34:14 UTC
Modified files:
Tag: u2_10_12_branch
ircd/s_auth.c ChangeLog
Log message:
Fix new auth system timeout bugs (SF bug#1469462).
---------------------- diff included ----------------------
Index: ircu2.10/ChangeLog
diff -u ircu2.10/ChangeLog:1.710.2.92 ircu2.10/ChangeLog:1.710.2.93
--- ircu2.10/ChangeLog:1.710.2.92 Fri Apr 28 19:21:56 2006
+++ ircu2.10/ChangeLog Fri Apr 28 19:34:03 2006
@@ -1,5 +1,13 @@
2006-04-28 Michael Poole <[EMAIL PROTECTED]>
+ * 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 <[EMAIL PROTECTED]>
+
* doc/example.conf (Admin): Fix documentation of which line can be
listed twice.
Index: ircu2.10/ircd/s_auth.c
diff -u ircu2.10/ircd/s_auth.c:1.37.2.7 ircu2.10/ircd/s_auth.c:1.37.2.8
--- ircu2.10/ircd/s_auth.c:1.37.2.7 Thu Apr 6 21:00:31 2006
+++ ircu2.10/ircd/s_auth.c Fri Apr 28 19:34:03 2006
@@ -31,7 +31,7 @@
*/
/** @file
* @brief Implementation of DNS and ident lookups.
- * @version $Id: s_auth.c,v 1.37.2.7 2006/04/07 04:00:31 entrope Exp $
+ * @version $Id: s_auth.c,v 1.37.2.8 2006/04/29 02:34:03 entrope Exp $
*/
#include "config.h"
@@ -96,7 +96,7 @@
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 */
@@ -405,7 +405,7 @@
/* 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,
@@ -415,7 +415,6 @@
else
FlagSet(&auth->flags, AR_IAUTH_HURRY);
-
destroy_auth_request(auth, send_reports);
if (!IsUserPort(auth->client))
return 0;
@@ -716,7 +715,8 @@
s_fd(&auth->socket) = -1;
}
- timer_del(&auth->timeout);
+ if (t_active(&auth->timeout))
+ timer_del(&auth->timeout);
cli_auth(auth->client) = NULL;
}
@@ -746,9 +746,6 @@
}
/* 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");
}
}
----------------------- End of diff -----------------------
_______________________________________________
Patches mailing list
[email protected]
http://undernet.sbg.org/mailman/listinfo/patches