summaryrefslogtreecommitdiffstats
path: root/usr.sbin/smtpd/queue_fsqueue.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* introduce Q_CORRUPT and queue_backend operation to move a message fromgilles2011-10-231-5/+35
| | | | | | schedule queue to corrupt queue upon envelope loading failure. tested by me, ok eric@
* fsqueue no longer stores envelopes by dumping the structure, instead use agilles2011-10-231-56/+47
| | | | | | | | | | | | | | couple of load/dump functions to convert to and from a human readable fmt. while at it kill struct delivery and merge back its fields to the envelope. this basically means we shouldn't require users to flush their queues every time we make a change to struct envelope. work is not done, but we're at a better state than the binary fsqueue so we'll improve it in-tree. has been running on my own box for the last 12 hours or so ok eric@, chl@
* add missing header needed by time()chl2011-08-261-1/+2
| | | | ok gilles@
* murder struct path and make sure smtpd uses simpler structures that do notgilles2011-05-161-30/+31
| | | | | | | | | | | | | bring a shitload of unnecessary information everywhere. this required many parts of smtpd to be refactored and more specifically envelope expansion. in the process lots of code got simplified, and the envelope expansion code has been isolated to lka_session.c with some longstanding bugs fixed. Diff has been tested by many with no major regression reported. armani@ spotted a bug in a setup where a domain is listed a both primary and virtual, I will fix that in-tree as it's becoming painful to maintain this diff out.
* the smtpd env is meant to be global, so do not pass it all around.eric2011-05-011-45/+37
| | | | discussed with and ok gilles@
* a structure describing an envelope should be called struct envelope, notgilles2011-04-171-39/+39
| | | | struct message ...
* I accidentally changed group ownership of fsqueue to _smtpd, it used to begilles2011-04-161-2/+2
| | | | owned by wheel. This commit reverts to original behavior
* kill message_id and message_uidgilles2011-04-151-83/+84
| | | | | | | | | | | smtpd now has an evpid associated to each delivery message, the evpid is an u_int64_t where the upper 32 bits are the msgid, and the 32 bits are the envelope unique identifier for that message. this results in lots of space saved in both disk-based and ram-based queues, but also simplifies a lot of code. change has been stressed on my desktop, and has ran on my MX for the entire afternoon without a regression.
* bye bye queue_hash() you can now rest in peace.gilles2011-04-141-4/+4
|
* - implement missing operations for fsqueue:gilles2011-04-141-2/+95
| | | | | | | | | fsqueue_envelope_create(), fsqueue_message_purge() - kill deprecated functions in queue_shared.c At this point fsqueue backend is almost complete, all that is left to do is to move the qwalk() API inside the queue_backend API, then make sure smtpd is no longer calling anything queue related directly.
* - implement fsqueue_message_create() and fsqueue_message_commit()gilles2011-04-141-5/+97
| | | | | | - change a few prototypes to allow bounce messages to use the queue_backend API until it gets merged in - kill functions of the queue API that have been deprecated
* fsqueue now provides fsqueue_message_fd_r() and fsqueue_message_fd_rw() togilles2011-04-141-7/+49
| | | | | | | obtain a read{-only,/write} descriptor to the message file. make sure smtpd uses the new API everywhere it needs a fd, and kill the many functions that were used until now.
* fsqueue_message_delete() should use fsqueue_hash() not queue_hash() as i'mgilles2011-04-141-2/+2
| | | | going to kill it with lots of violence soon.
* fsqueue queue backend will implement a filesystem queue:gilles2011-04-141-5/+377
| | | | | | | | | | | | - fsqueue->setup() performs the queue initialization; - fsqueue->message() controls messages; - fsqueue->envelope() controls envelopes; This commit brings the following to fsbackend: fsqueue_setup(), fsqueue_message_delete(), fsqueue_envelope_load(), fsqueue_envelope_update(), fsqueue_envelope_delete(). It also makes smtpd use the queue_backend API for these operations.
* smtpd makes too many assumptions about the structure and layout of itsgilles2011-04-141-0/+55
disk-based queue, it makes it near impossible to make changes to it without editing twenty files... how am i going to implement mongodb support ? :-) bring a new queue_backend API which hides the details of the disk-based queue to smtpd. it is not "plugged in" yet and I'm filling the holes.