CVSROOT: /cvs Module name: src Changes by: gil...@cvs.openbsd.org 2011/11/15 16:06:39
Modified files: usr.sbin/smtpd : queue.c queue_backend.c queue_fsqueue.c queue_shared.c ramqueue.c runner.c smtpctl.c smtpd.h Log message: Qwalk, our API to linearly walk over the persistent queue, did not take the queue_backend into account and assumed a filesystem with a specific layout. This commit does plenty of things: - make qwalk an abstraction in the queue_backend API, and impose queue drivers to implement qwalk_open(), qwalk() and qwalk_close(); - move previous qwalk_open(), qwalk() and qwalk_close() to the fsqueue driver since they were fsqueue specific ... - make qwalk API work with msgid/evpid instead of pathnames since we're going to use the queue_backend API to load envelopes by evpid anyway; - makes smtpd use *solely* the queue_backend API when manipulating the queue. pathnames were removed from smtpd.h and moved into the fsqueue which means we can now store a queue anywhere ... as long as we write the ten functions or so required for a queue driver ;-) ok eric@, ok chl@