changeset 5586:dad0e22b735a HEAD

Changed auth_request->created to last_access and update it a bit more often. If there are slow authentications this could help avoid removing timeouted auth requests too early.
author Timo Sirainen <tss@iki.fi>
date Fri, 11 May 2007 15:01:42 +0300
parents e33158bc72b0
children 8d7ed4bf54c6
files src/auth/auth-request-handler.c src/auth/auth-request.c src/auth/auth-request.h
diffstat 3 files changed, 7 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/auth/auth-request-handler.c	Wed May 09 19:45:47 2007 +0300
+++ b/src/auth/auth-request-handler.c	Fri May 11 15:01:42 2007 +0300
@@ -102,7 +102,7 @@
 	while (hash_iterate(iter, &key, &value)) {
 		struct auth_request *request = value;
 
-		if (request->created + AUTH_REQUEST_TIMEOUT < ioloop_time)
+		if (request->last_access + AUTH_REQUEST_TIMEOUT < ioloop_time)
 			auth_request_handler_remove(handler, request);
 	}
 	hash_iterate_deinit(iter);
--- a/src/auth/auth-request.c	Wed May 09 19:45:47 2007 +0300
+++ b/src/auth/auth-request.c	Fri May 11 15:01:42 2007 +0300
@@ -33,7 +33,7 @@
 	request->userdb = auth->userdbs;
 
 	request->refcount = 1;
-	request->created = ioloop_time;
+	request->last_access = ioloop_time;
 	request->credentials = -1;
 
 	request->auth = auth;
@@ -53,7 +53,7 @@
 	auth_request->pool = pool;
 
 	auth_request->refcount = 1;
-	auth_request->created = ioloop_time;
+	auth_request->last_access = ioloop_time;
 	auth_request->auth = auth;
 	auth_request->passdb = auth->passdbs;
 	auth_request->userdb = auth->userdbs;
@@ -75,6 +75,7 @@
 
 	request->state = AUTH_REQUEST_STATE_FINISHED;
 	request->successful = TRUE;
+	request->last_access = ioloop_time;
 	request->callback(request, AUTH_CLIENT_RESULT_SUCCESS,
 			  data, data_size);
 }
@@ -84,6 +85,7 @@
 	i_assert(request->state == AUTH_REQUEST_STATE_MECH_CONTINUE);
 
 	request->state = AUTH_REQUEST_STATE_FINISHED;
+	request->last_access = ioloop_time;
 	request->callback(request, AUTH_CLIENT_RESULT_FAILURE, NULL, 0);
 }
 
@@ -179,6 +181,7 @@
 {
 	i_assert(request->state == AUTH_REQUEST_STATE_MECH_CONTINUE);
 
+	request->last_access = ioloop_time;
 	request->mech->auth_continue(request, data, data_size);
 }
 
--- a/src/auth/auth-request.h	Wed May 09 19:45:47 2007 +0300
+++ b/src/auth/auth-request.h	Fri May 11 15:01:42 2007 +0300
@@ -54,7 +54,7 @@
 	unsigned int connect_uid;
 	unsigned int client_pid;
 	unsigned int id;
-	time_t created;
+	time_t last_access;
 
 	const char *service;
 	struct ip_addr local_ip, remote_ip;