From: Timo Sirainen Date: Tue, 31 Aug 2021 09:14:15 +0000 (+0300) Subject: indexer: Change status callback to take struct indexer_request parameter X-Git-Tag: 2.3.17~128 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4018f443371b51d9d9040cef8665da5fa087e17a;p=thirdparty%2Fdovecot%2Fcore.git indexer: Change status callback to take struct indexer_request parameter --- diff --git a/src/indexer/indexer.c b/src/indexer/indexer.c index 9a7af6e28c..219af539f4 100644 --- a/src/indexer/indexer.c +++ b/src/indexer/indexer.c @@ -95,11 +95,9 @@ static void queue_listen_callback(struct indexer_queue *queue) queue_try_send_more(queue); } -static void worker_status_callback(int percentage, void *context) +static void +worker_status_callback(int percentage, struct indexer_request *request) { - struct connection *conn = context; - struct indexer_request *request = worker_connection_get_request(conn); - if (percentage >= 0 && percentage < 100) { indexer_queue_request_status(queue, request, percentage); diff --git a/src/indexer/indexer.h b/src/indexer/indexer.h index 417a433cd9..2234f2db70 100644 --- a/src/indexer/indexer.h +++ b/src/indexer/indexer.h @@ -1,8 +1,11 @@ #ifndef INDEXER_H #define INDEXER_H +struct indexer_request; + /* percentage: -1 = failed, 0..99 = indexing in progress, 100 = done */ -typedef void indexer_status_callback_t(int percentage, void *context); +typedef void +indexer_status_callback_t(int percentage, struct indexer_request *request); void indexer_refresh_proctitle(void); diff --git a/src/indexer/worker-connection.c b/src/indexer/worker-connection.c index a9b9ae464c..d50655f0a3 100644 --- a/src/indexer/worker-connection.c +++ b/src/indexer/worker-connection.c @@ -37,7 +37,7 @@ static void worker_connection_call_callback(struct worker_connection *worker, int percentage) { if (worker->request != NULL) - worker->callback(percentage, &worker->conn); + worker->callback(percentage, worker->request); if (percentage < 0 || percentage == 100) worker->request = NULL; } @@ -168,14 +168,6 @@ const char *worker_connection_get_username(struct connection *conn) return worker->request_username; } -struct indexer_request * -worker_connection_get_request(struct connection *conn) -{ - struct worker_connection *worker = - container_of(conn, struct worker_connection, conn); - return worker->request; -} - static const struct connection_vfuncs worker_connection_vfuncs = { .destroy = worker_connection_destroy, .input_args = worker_connection_input_args, diff --git a/src/indexer/worker-connection.h b/src/indexer/worker-connection.h index f8d6c39d1a..c307a63fd5 100644 --- a/src/indexer/worker-connection.h +++ b/src/indexer/worker-connection.h @@ -35,7 +35,4 @@ bool worker_connection_is_busy(struct connection *conn); or NULL if there are none. */ const char *worker_connection_get_username(struct connection *conn); -struct indexer_request * -worker_connection_get_request(struct connection *conn); - #endif