Age | Commit message (Collapse) | Author |
|
to a sane default for everyone.
|
|
smtpd already does it, but this allows spotting a cycle at makemap time, so
user isn't surprised at runtime.
while at it, be more tolerant when user specifies /etc/mail/aliases instead
of /etc/mail/aliases.db
|
|
|
|
after the loop.
spotted by huku at grhack.net
ok gilles@
|
|
to wait on the same "tag" for a deferred result.
A waiter is a callback and a void *argument. The first waiter (the one for
which waitq_wait() returns true) is supposed to run some code that leads to
waitq_run() being run, which will destroy that waitq and call all callbacks
in turn.
Not used at the moment, but will be soon.
ok gilles@ chl@
|
|
that assume sendmail do not break ... add support for reading map source
from stdin, for specifying the DBTYPE of a map, and teach OUR makemap to
emulate sendmail interface.
ok eric@
|
|
introduce iobuf_xinit() and iobuf_xfqueue(). (idea from eric@)
ok gilles@
|
|
low as experienced by myself and another user.
discussed with and ok eric@
|
|
|
|
|
|
|
|
|
|
|
|
map aliases source plain "/etc/mail/aliases"
can be reduced to:
map aliases "/etc/mail/aliases"
|
|
the "real" debug mode is set.
ok gilles@ chl@
|
|
from gilles@ ok eric@
|
|
the logic for inserting them in a lka session when acting as backup MX did
not take account for one specific case that could lead to an early exit
without smtpd getting a chance to detect the entry corrsponds to itself.
in such case, a backup MX woud try to connect to itself and bounce in the
loop detection code ... or it would sometimes work.
|
|
During the entire expansion process, a username may be larger than
MAXLOGNAME because it may be an alias going through another expansion.
We should use a buffer that's large enough to fit a mailaddr user-part so
we avoid hitting a truncation check leading to a fatal().
ok eric@, ok chl@
|
|
- bump the expansion depth from 5 to 10
- add the current node depth to log_debug()
ok eric@, ok chl@
|
|
rules, we only allow them for mbox and maildir though users should really
create a root alias ...
discussed with eric@ and chl@, ok both
|
|
from eric@ input
ok gilles@
|
|
|
|
|
|
code for main and backup table all over the place, turn the relay
tables into a list attached to the relay. This improves the code and
allows some other tricks with multiple tables later.
|
|
remove the db conversion from BTREE to HASH.
ok beck@
|
|
ok gilles@ eric@
|
|
|
|
This fixes an issue which aborted the address traversal / SNMP walk when
an "any"/0.0.0.0 address was configured on an interface. The problem
was found with a pppoe(4) device that is typically configured with 0.0.0.0
on startup.
Found and fix tested by Gerhard Roth
|
|
ok gilles@
|
|
ie:
reject from 192.168.1.0/24 for domain "openbsd.org"
accept from 192.168.0.0/16 for domain "openbsd.org" deliver to mbox
it was documented but not working.
ok eric@ & chl@
|
|
ok eric@ gilles@
|
|
- move mfa_session() prototype to smtpd.h
- make mfa session use a tree
- make static functions static
- merge mfa_session_init() into mfa_session()
ok chl@
|
|
"wow!" gilles@
|
|
It's not documented and not implemented.
ok gilles@
|
|
pointed out by Andrew Ngo.
|
|
- move struct child to smtpd.c
- make it use a tree keyed on the pid
- change child_add to take the title directly as a const char *
- remove useless child_lookup() and child_del()
- remove CHILD_INVALID
ok chl@ gilles@
|
|
ok eric@
|
|
but still use uint32_t keys since ithe key is used as peerid in msg.
ok gilles@
|
|
- move session_socket_* prototypes under util.c
- move struct ctl_conn in control.c
- make static functions static
- remove unused functions
- call unlink() in control_shutdown()
- make control_close() take a ctl_conn * instead of a fd
ok chl@ gilles@
|
|
ok reyk
|
|
ok eric@ gilles@
|
|
message already exists in the main queue, otherwise it's counted twice.
ok gilles@
|
|
|
|
The session manages a list of nodes to process. A node has a link to the
parent node from which it has been expanded, and a link to the rule that
led to its creation. Depending on its type and the associated rule, each
node is either "expanded" to create new nodes or "submitted" to create a
final envelope. Nodes which have already been seen, either processed or
not, are discarded to avoid loops.
The expansion process is bootstrapped by creating an EXPAND_ADDRESS node
from the original dest, with no rule and no parent. It is done when all
nodes have been expanded or if an error occurs before. The expand depth
is limited 5 levels. The whole expansion fails if the limit is reached.
While there, make sure that only one .forward file is queried at a time,
and only append the subfolder tag in the maildir case.
Fixe issues with some virtual map setups where the dest would get mixed
up, and make the whole expansion process generally easier to follow.
ok chl@ gilles@
|
|
use xcalloc() helper
remove newly unused variable
ok gilles@ eric@
|
|
while there unify usage of log_trace() in ramstat_set()
ok gilles@ eric@
|
|
ok gilles@ eric@
|
|
ok eric@ gilles@
|
|
It's confusing and not necessary as it's only used for "buffer".
Instead, just add a "buffer" member in the structure and rename
"as_user" to "user".
The delivery_data union becomes an anonymous union in expandnode,
which is the only other place where it's used.
ok gilles@
|
|
references into a STANDARDS section;
|