diff options
author | Eric Faurot <eric@faurot.net> | 2013-06-12 10:14:26 +0200 |
---|---|---|
committer | Eric Faurot <eric@faurot.net> | 2013-06-12 10:14:26 +0200 |
commit | f957e20828146cbff514cc7871768f7256137683 (patch) | |
tree | 873e0f493bfd28c7b02c69459e7621803cb9c020 /smtpd/queue_ram.c | |
parent | Organize queue_proc.c code as other queue backends. (diff) | |
download | OpenSMTPD-f957e20828146cbff514cc7871768f7256137683.tar.xz OpenSMTPD-f957e20828146cbff514cc7871768f7256137683.zip |
update the queue backend API to only define an init call and get rid of the
QOP_* defines. Builtin backends use the same API as external ones to
register their callback.
Diffstat (limited to 'smtpd/queue_ram.c')
-rw-r--r-- | smtpd/queue_ram.c | 73 |
1 files changed, 15 insertions, 58 deletions
diff --git a/smtpd/queue_ram.c b/smtpd/queue_ram.c index 9e66da52..19921597 100644 --- a/smtpd/queue_ram.c +++ b/smtpd/queue_ram.c @@ -354,69 +354,26 @@ queue_ram_envelope_walk(uint64_t *evpid, char *buf, size_t len) return (-1); } -static int queue_ram_init(int); -static int queue_ram_message(enum queue_op, uint32_t *); -static int queue_ram_envelope(enum queue_op , uint64_t *, char *, size_t); - -struct queue_backend queue_backend_ram = { - queue_ram_init, - queue_ram_message, - queue_ram_envelope, -}; - -static struct tree messages; - static int queue_ram_init(int server) { tree_init(&messages); - return (1); -} - -static int -queue_ram_message(enum queue_op qop, uint32_t *msgid) -{ - switch (qop) { - case QOP_CREATE: - return queue_ram_message_create(msgid); - case QOP_DELETE: - return queue_ram_message_delete(*msgid); - case QOP_COMMIT: - return queue_ram_message_commit(*msgid); - case QOP_FD_R: - return queue_ram_message_fd_r(*msgid); - case QOP_FD_RW: - return queue_ram_message_fd_w(*msgid); - case QOP_CORRUPT: - return queue_ram_message_corrupt(*msgid); - default: - fatalx("queue_ram_message: unsupported operation."); - } + queue_api_on_message_create(queue_ram_message_create); + queue_api_on_message_commit(queue_ram_message_commit); + queue_api_on_message_delete(queue_ram_message_delete); + queue_api_on_message_fd_r(queue_ram_message_fd_r); + queue_api_on_message_fd_w(queue_ram_message_fd_w); + queue_api_on_message_corrupt(queue_ram_message_corrupt); + queue_api_on_envelope_create(queue_ram_envelope_create); + queue_api_on_envelope_delete(queue_ram_envelope_delete); + queue_api_on_envelope_update(queue_ram_envelope_update); + queue_api_on_envelope_load(queue_ram_envelope_load); + queue_api_on_envelope_walk(queue_ram_envelope_walk); - return (0); + return (1); } -static int -queue_ram_envelope(enum queue_op qop, uint64_t *evpid, char *buf, size_t len) -{ - uint32_t msgid; - - switch (qop) { - case QOP_CREATE: - msgid = evpid_to_msgid(*evpid); - return queue_ram_envelope_create(msgid, buf, len, evpid); - case QOP_DELETE: - return queue_ram_envelope_delete(*evpid); - case QOP_LOAD: - return queue_ram_envelope_load(*evpid, buf, len); - case QOP_UPDATE: - return queue_ram_envelope_update(*evpid, buf, len); - case QOP_WALK: - return queue_ram_envelope_walk(evpid, buf, len); - default: - fatalx("queue_ram_envelope: unsupported operation."); - } - - return (0); -} +struct queue_backend queue_backend_ram = { + queue_ram_init, +}; |