]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
login-common: Change struct client's auth_first_started and auth_finished to timeval
authorMarkus Valentin <markus.valentin@open-xchange.com>
Tue, 24 Jan 2023 08:48:46 +0000 (09:48 +0100)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Thu, 23 Mar 2023 08:06:31 +0000 (08:06 +0000)
src/login-common/client-common.c
src/login-common/client-common.h
src/login-common/sasl-server.c

index 1e676da5bafd9c142cfc40d5cd98a89c222480e1..5cc9407966cb5ab3b0778b95662d7d5da135ea7f 100644 (file)
@@ -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;
 
index 93f8ee589b66a44d27c602a1c6d7c35b82e73ef5..23eea93d9d9d33e1b67e79aed5d00cfdaf5d4bc6 100644 (file)
@@ -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;
index 08a7956f2d1c7367d8c563cef3100e9094cdca0a..7735a3f1f03b9db63457a20806a7af28ebf79fa6 100644 (file)
@@ -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(&params);
        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;