From: Markus Valentin Date: Tue, 24 Jan 2023 08:48:46 +0000 (+0100) Subject: login-common: Change struct client's auth_first_started and auth_finished to timeval X-Git-Tag: 2.4.0~2895 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=56cad3a0060fb49e81b9a5fb39e7efbee5b812fa;p=thirdparty%2Fdovecot%2Fcore.git login-common: Change struct client's auth_first_started and auth_finished to timeval --- diff --git a/src/login-common/client-common.c b/src/login-common/client-common.c index 1e676da5ba..5cc9407966 100644 --- a/src/login-common/client-common.c +++ b/src/login-common/client-common.c @@ -127,7 +127,7 @@ static void client_idle_disconnect_timeout(struct client *client) unsigned int secs; if (client->master_tag != 0) { - secs = ioloop_time - client->auth_finished; + secs = ioloop_time - client->auth_finished.tv_sec; user_reason = "Timeout while finishing login."; destroy_reason = t_strdup_printf( "Timeout while finishing login (waited %u secs)", secs); @@ -1162,8 +1162,8 @@ bool client_get_extra_disconnect_reason(struct client *client, const char **human_reason_r, const char **event_reason_r) { - unsigned int auth_secs = client->auth_first_started == 0 ? 0 : - ioloop_time - client->auth_first_started; + unsigned int auth_secs = client->auth_first_started.tv_sec == 0 ? 0 : + ioloop_time - client->auth_first_started.tv_sec; *event_reason_r = NULL; diff --git a/src/login-common/client-common.h b/src/login-common/client-common.h index 93f8ee589b..23eea93d9d 100644 --- a/src/login-common/client-common.h +++ b/src/login-common/client-common.h @@ -204,7 +204,7 @@ struct client { struct auth_client_request *auth_request; struct auth_client_request *reauth_request; string_t *auth_response; - time_t auth_first_started, auth_finished; + struct timeval auth_first_started, auth_finished; const char *sasl_final_resp; const char *const *auth_passdb_args; struct anvil_query *anvil_query; diff --git a/src/login-common/sasl-server.c b/src/login-common/sasl-server.c index 08a7956f2d..7735a3f1f0 100644 --- a/src/login-common/sasl-server.c +++ b/src/login-common/sasl-server.c @@ -200,7 +200,7 @@ static int master_send_request(struct anvil_request *anvil_request) req.data_size = buf->used; i_stream_skip(client->input, size); - client->auth_finished = ioloop_time; + client->auth_finished = ioloop_timeval; i_zero(¶ms); params.client_fd = fd; @@ -514,8 +514,8 @@ void sasl_server_auth_begin(struct client *client, const char *mech_name, client->auth_aborted_by_client = FALSE; client->authenticating = TRUE; client->master_auth_id = 0; - if (client->auth_first_started == 0) - client->auth_first_started = ioloop_time; + if (client->auth_first_started.tv_sec == 0) + client->auth_first_started = ioloop_timeval; i_free(client->auth_mech_name); client->auth_mech_name = str_ucase(i_strdup(mech_name)); client->auth_anonymous = FALSE;