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@

Reply via email to