aboutsummaryrefslogtreecommitdiffstats
path: root/smtpd/queue_ram.c
diff options
context:
space:
mode:
authorEric Faurot <eric@faurot.net>2013-06-12 10:14:26 +0200
committerEric Faurot <eric@faurot.net>2013-06-12 10:14:26 +0200
commitf957e20828146cbff514cc7871768f7256137683 (patch)
tree873e0f493bfd28c7b02c69459e7621803cb9c020 /smtpd/queue_ram.c
parentOrganize queue_proc.c code as other queue backends. (diff)
downloadOpenSMTPD-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.c73
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,
+};