indexer-queue.c (dovecot-2.3.16) | : | indexer-queue.c (dovecot-2.3.17) | ||
---|---|---|---|---|
/* Copyright (c) 2011-2018 Dovecot authors, see the included COPYING file */ | /* Copyright (c) 2011-2018 Dovecot authors, see the included COPYING file */ | |||
#include "lib.h" | #include "lib.h" | |||
#include "array.h" | #include "array.h" | |||
#include "llist.h" | #include "llist.h" | |||
#include "hash.h" | #include "hash.h" | |||
#include "indexer-queue.h" | #include "indexer-queue.h" | |||
struct indexer_queue { | struct indexer_queue { | |||
indexer_status_callback_t *callback; | indexer_queue_callback_t *callback; | |||
void (*listen_callback)(struct indexer_queue *); | void (*listen_callback)(struct indexer_queue *); | |||
/* username+mailbox -> indexer_request */ | /* username+mailbox -> indexer_request */ | |||
HASH_TABLE(struct indexer_request *, struct indexer_request *) requests; | HASH_TABLE(struct indexer_request *, struct indexer_request *) requests; | |||
struct indexer_request *head, *tail; | struct indexer_request *head, *tail; | |||
}; | }; | |||
static unsigned int | static unsigned int | |||
indexer_request_hash(const struct indexer_request *request) | indexer_request_hash(const struct indexer_request *request) | |||
{ | { | |||
skipping to change at line 32 | skipping to change at line 32 | |||
} | } | |||
static int indexer_request_cmp(const struct indexer_request *r1, | static int indexer_request_cmp(const struct indexer_request *r1, | |||
const struct indexer_request *r2) | const struct indexer_request *r2) | |||
{ | { | |||
return strcmp(r1->username, r2->username) == 0 && | return strcmp(r1->username, r2->username) == 0 && | |||
strcmp(r1->mailbox, r2->mailbox) == 0 ? 0 : 1; | strcmp(r1->mailbox, r2->mailbox) == 0 ? 0 : 1; | |||
} | } | |||
struct indexer_queue * | struct indexer_queue * | |||
indexer_queue_init(indexer_status_callback_t *callback) | indexer_queue_init(indexer_queue_callback_t *callback) | |||
{ | { | |||
struct indexer_queue *queue; | struct indexer_queue *queue; | |||
queue = i_new(struct indexer_queue, 1); | queue = i_new(struct indexer_queue, 1); | |||
queue->callback = callback; | queue->callback = callback; | |||
hash_table_create(&queue->requests, default_pool, 0, | hash_table_create(&queue->requests, default_pool, 0, | |||
indexer_request_hash, indexer_request_cmp); | indexer_request_hash, indexer_request_cmp); | |||
return queue; | return queue; | |||
} | } | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added |