# HG changeset patch # User Timo Sirainen # Date 1525431826 -10800 # Node ID 3e71d3877872d06ffab3dff9e079a93e3f55beb5 # Parent 304c434e382f6b7b771ba6f293afd85ea640e4fc lib-master: Use more exact timestamp in master_login_auth_request failures diff -r 304c434e382f -r 3e71d3877872 src/lib-master/master-login-auth.c --- a/src/lib-master/master-login-auth.c Fri May 04 13:56:45 2018 +0300 +++ b/src/lib-master/master-login-auth.c Fri May 04 14:03:46 2018 +0300 @@ -11,6 +11,7 @@ #include "hash.h" #include "str.h" #include "strescape.h" +#include "time-util.h" #include "master-interface.h" #include "master-service.h" #include "master-auth.h" @@ -23,7 +24,7 @@ struct master_login_auth_request *prev, *next; unsigned int id; - time_t create_stamp; + struct timeval create_stamp; pid_t auth_pid; unsigned int auth_id; @@ -149,7 +150,7 @@ { time_t expires; - expires = auth->request_head->create_stamp + + expires = auth->request_head->create_stamp.tv_sec + MASTER_AUTH_LOOKUP_TIMEOUT_SECS; return expires <= ioloop_time ? 0 : expires - ioloop_time; } @@ -168,7 +169,7 @@ reason = t_strdup_printf( "Auth server request timed out after %u secs", - (unsigned int)(ioloop_time - request->create_stamp)); + (unsigned int)(ioloop_time - request->create_stamp.tv_sec)); request_internal_failure(request, reason); i_free(request); } @@ -296,9 +297,10 @@ "Internal auth failure"); } else { i_error("Internal auth failure: %s " - "(Request took %ld secs, " + "(Request took %u msecs, " "client-pid=%u client-id=%u)", - error, (long)(ioloop_time - request->create_stamp), + error, timeval_diff_msecs(&ioloop_timeval, + &request->create_stamp), request->client_pid, request->auth_id); request->callback(NULL, error, request->context); } @@ -478,8 +480,9 @@ if (id == 0) id++; + io_loop_time_refresh(); login_req = i_new(struct master_login_auth_request, 1); - login_req->create_stamp = ioloop_time; + login_req->create_stamp = ioloop_timeval; login_req->id = id; login_req->auth_pid = req->auth_pid; login_req->client_pid = req->client_pid;