Age | Commit message (Collapse) | Author |
|
change. ok claudio
|
|
|
|
problem reported with the obvious fix for bgpd by Sebastian Benoit
<benoit-lists at fb12.de>, also PR 6432
applied to all the others by yours truly. ok theo
isn't it amazing how far this parser (and more) spread?
|
|
relaying the server diagnostic back to the user (eg. "500 Line too long").
|
|
can be a normal situation and will allow a local/authenticated user to
trigger the fatal on purpose ...
ignore permanently failed bounce deliveries since there's not much smtpd
can do anyway, that's what the previous queue code did.
experienced and reported by pirofti@
|
|
"misalign strings on the stack" bug in gcc4 is fixed (even when that
is fixed this idiom is safer and quite common)
ok jacekm
|
|
with help from jacekm@
ok gilles@ jacekm@
|
|
queue_mem_content_unref() function
ok jacekm@, gilles@
|
|
|
|
ok jacekm@
|
|
|
|
|
|
of the list of next items to try, or near the beginning if the schedule
contains expired mail, which is of highest priority.
|
|
|
|
and lasttry args to queue_retry would make it return birth leading
looped scheduling, but that's not true so drop the "+ 1".
|
|
|
|
queue rewrite. Proper fix after gilles wakes up.
|
|
|
|
|
|
Major goals:
1) Fix bad performance caused by the runner process doing full queue
read in 1s intervals. My Soekris can now happily accept >50 msg/s
while having multi-thousand queue; before, one hundred queue would
bring the system to its knees.
2) Introduce Qmail-like scheduler that doesn't write as much to the
disk so that it needs less code for servicing error conditions,
which in some places can be tricky to get right.
3) Introduce separation between the scheduler and the backend; these
two queue aspects shouldn't be too tied too each other. This means
that eg. storing queue in SQL requires rewrite of just queue_backend.c.
4) Make on-disk queue format architecture independent, and more
easily extensible, to reduce number of flag days in the future.
Minor goals:
ENOSPC no longer prevents delivery attempts, fixed session limiting
for relayed mail, improved batching of "relay via" mails, human-readable
mailq output, "show queue raw" command, clearer logging, sending
of single bounce about multiple recipients, exact delay= computation,
zero delay between deliveries while within session limit (currently
1s delay between re-scheduling is enforced), mta no longer requests
content fd, corrected session limit for bounce submissions, tiny
<100B queue files instead of multi-KB, detect loops before accepting
mail, reduce traffic on imsg channels by killing enormous struct
submit_status.
|
|
ok jacekm@ gilles@
|
|
expand to two rules each having its own condition rather than one rule
with a tail queue of conditions. this simplifies code a bit and removes a
couple hacks.
basic testing by oga and me
|
|
if we feel a need for it
|
|
|
|
Minor bump for libutil.
Previous versions of this diff and man page looked at by various people.
"you should just commit" deraadt
|
|
ibuf, buf_read to ibuf_read, READ_BUF_SIZE to IBUF_READ_SIZE.
ok henning gilles claudio jacekm deraadt
|
|
more readable, and fixes a spacing bug we had in smtpd.8;
|
|
setresuid because after dropping superuser privileges the process
cannot be trusted to call these.
Thanks to oga@, kettenis@, and nicm@ for confirming my paranoia.
|
|
|
|
|
|
|
|
pointer deref if we actually went through this code path (reload, does
not work yet so it is disabled)
|
|
|
|
ok eric
|
|
|
|
virtual AND secrets), adds a description in smtpd.conf.5 and removes a
mention to special map "aliases" which was removed a while ago.
to use plain maps: map "myaliases" { source plain "/etc/mail/aliases" }
code diff was okayd a while ago by jacekm@
|
|
- kill struct alias, struct expandnode is used instead
- introduce map_parse_alias() and map_parse_virtual()
- aliases and virtual code no longer assume db(3) but use the map API which
lets them become backend agnostic AND value-checked. this actually makes
the code simpler by removing all values parsing from aliases.c
- rename K_SECRETS -> K_SECRET, K_ALIASES -> K_ALIAS for consistency the
enum has singular names.
- aliases, virtual and forward now work with an expandtree and deal with
multiple levels of resolving by merging expandtree's
more coming soon ;)
|
|
while there, print SIZE unconditonnally (prompted by gilles@)
ok gilles@
|
|
- rewrite the description of "size"
ok gilles jacekm
|
|
of forwarding it via queue.
|
|
- kill noisy log_debug
|
|
map_parse_secret() converts a map value into a struct map_secret. lka no
longer needs to do any parsing, it simply calls map_lookup() with kind
K_SECRETS, checks if it returned a !NULL value, and call lka_encode_secret
to safely do the base64 encoding.
|
|
beginning of the key (ie: "gilles: bleh" should not be stored as
key[gilles] val[ bleh])
|
|
map.c contains the map API calls as usable by smtpd processes,
map_backend.c contains backend implementations and map_parser.c contains
parser implementations used internally by the map API
|
|
an update to libevent that ships with evbuffer_readln(). beers for nicm@ !
|
|
to fill the size of value for the caller.
have map_lookup() actually lookup the parser in map_parsers table and
call it if it is set, otherwise return raw value which is similar to
current behavior. currently, no map kind has a parser set, so this is
essentially no functionnal change.
fix map_stdio_get(), it was not used yet in -current but i spotted a
bug while enabling it in my sandbox. it returns key and value instead
of key.
|
|
will be used to select the appropriate map parser. make sure every call
to map_lookup() is updated. map_lookup() currently ignores the value.
|
|
which will be used to perform stronger checks on map values. they are
unused yet ...
|
|
map_backend_lookup() function, no functionnal change, first of
many changes to come in map.c
|
|
channels to parent, mda, mta, lka, smtp, and control. This leaves
just the channel to queue, which forwards imsgs on runner's behalf
and redirects any replies back to it.
OK gilles@
|