Mercurial > dovecot > original-hg > dovecot-1.2
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;