This cleans up the code a bit.
request = indexer_queue_append_request(queue, append, username, mailbox,
session_id, max_recent_msgs,
context);
- request->index = TRUE;
+ request->type = INDEXER_REQUEST_TYPE_INDEX;
indexer_queue_append_finish(queue);
}
request = indexer_queue_append_request(queue, TRUE, username, mailbox,
NULL, 0, context);
- request->optimize = TRUE;
+ request->type = INDEXER_REQUEST_TYPE_OPTIMIZE;
indexer_queue_append_finish(queue);
}
typedef void indexer_queue_callback_t(int status, void *context);
+enum indexer_request_type {
+ /* index messages in the mailbox */
+ INDEXER_REQUEST_TYPE_INDEX,
+ /* optimize the mailbox */
+ INDEXER_REQUEST_TYPE_OPTIMIZE,
+};
+
struct indexer_request {
struct indexer_request *prev, *next;
char *session_id;
unsigned int max_recent_msgs;
- /* index messages in this mailbox */
- bool index:1;
- /* optimize this mailbox */
- bool optimize:1;
+ enum indexer_request_type type;
+
/* currently indexing this mailbox */
bool working:1;
/* after indexing is finished, add this request back to the queue and
container_of(conn, struct worker_connection, conn);
i_assert(worker_connection_is_connected(conn));
- i_assert(request->index || request->optimize);
if (worker->request_username == NULL)
worker->request_username = i_strdup(request->username);
if (request->session_id != NULL)
str_append_tabescaped(str, request->session_id);
str_printfa(str, "\t%u\t", request->max_recent_msgs);
- if (request->index)
+ switch (request->type) {
+ case INDEXER_REQUEST_TYPE_INDEX:
str_append_c(str, 'i');
- if (request->optimize)
+ break;
+ case INDEXER_REQUEST_TYPE_OPTIMIZE:
str_append_c(str, 'o');
+ break;
+ }
str_append_c(str, '\n');
o_stream_nsend(conn->output, str_data(str), str_len(str));
} T_END;