Age | Commit message (Collapse) | Author |
|
|
|
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.
|
|
|
|
- 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
|
|
|
|
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.
|
|
going to kill it with lots of violence soon.
|
|
- 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.
|
|
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.
|
|
a continuous walk on the disk-queue. the implementation differs from what
jacekm@ commited (and I backed out) a while ago in that it uses a queue and
a host tree required for upcoming features.
code will be improved in tree, it requires changes to be done in queue and
bounce API, I just wanted to commit a working version first ...
tested by todd@ and I
|
|
ok gilles@
|
|
especially, make sure to write the ending '\0'.
ok gilles@
|
|
- use a specific dispatch function for each type of query
- make the host handler work on a list of hosts by default (single host
queries are just a particular case) and use that to resolve the MX list
- various other code cleanup
- remove unused headers
- remove orphaned prototypes
- update copyright
ok gilles@
|
|
ok gilles@
|
|
ok gilles@
|
|
ok gilles@
|
|
ok gilles@
|
|
ok gilles@
|
|
- the MX records were not always properly inserted into the sorted
array, which led to some MX being silently dropped.
- if an MX address could not be resolved, mail delivery would fail,
even though other valid MX exist for that domain. Now only report
the failure if no server address can be found at all.
grrrreeat gilles@
|
|
trying to close it in a mta session. in case of DNS errors; this pointer
will remain NULL and cause a segv in MTA_DONE state.
|
|
Then asr_run() call now returns ASR_COND when a condition on a FD is
expected. The exact condition (readable or writeable) is specified in
the asr_result structure, along with the fd and timeout.
ok gilles@
|
|
Not used by the rest of smtpd for now.
ok gilles@
|
|
fd. this shifts responsibility for the fclose to the caller, prevents a
memory leak and makes everyone happy.
diff by Jared Yanovich, thanks !
|
|
ok gilles@
|
|
left-over from a former implementation where asr_ctx didn't exist and
struct asr was refcounted.
spotted by Jared Yanovich.
ok gilles@
|
|
since resolv.conf reloading is handled automatically by asr.
ok gilles@
|
|
ok gilles@
|
|
|
|
- datafd is closed in client_close()
|
|
queue_shared.c
diff from Jared Yanovich, sent to bugs@ by Jonny Mosco
|
|
exchange. if no DH parameters are found, fallback to builtin parameters
as was done until now.
since we now accept user-provided DH parameters, make smtpd more strict
and fatal() if the parameters are bogus.
bump the key size of the DH parameters from 512bits to 1024bits, it might
be bumped further after some more research.
thanks to mikeb@ for his suggestions
diff ok mikeb@ , man ok jmc@
|
|
|
|
ok gilles@
previous commit should have read:
when copying 'struct sockaddr' data, use sa_len not sizeof(struct sockaddr_in)
this fixes truncation of IPv6 addresses in the mail delivery path
ok gilles@
|
|
|
|
on big-endian machines ...
spotted and tested by landry@ (and I)
|
|
the behavior but I introduced a regression when switching to ASR.
bug reported by jmc@, bugfix tested by jmc@ and I
|
|
based on a diff from Sunil Nimmagadda
ok gilles
|
|
the end of the buffer.
tested by and ok gilles@
|
|
ok gilles@
|
|
written by eric@. it is still experimental but still better than what we
had earlier so ... we'll improve in tree :)
diff by me with *lots* of help from eric@, tested by todd and I (and a
few people out there)
|
|
|
|
|
|
|
|
|
|
"ok and no need to keep them for yourself" gilles@
|
|
of an email address at session time, then fatal() when we can't fit it
in a LOGIN_NAME_MAX (32 bytes) buffer in the aliases expansion code.
fix aliases functions to use a buffer that's appropriate, preventing a
fatal() from being triggered in aliases_exist(). bug experienced by
and reported by Jason Houx, if you're testing smtpd you want to update.
|
|
This prevents smtpd from exiting if 'smtpctl schedule' is run with a valid
but non-existent message ID. Whilst here make ENOSPC fatal since this
should not happen.
ok gilles@
|
|
authenticated relaying. one can create many maps holding credentials and
name them however he/she wants, just like any other map.
teach smtpd how to select a credentials map at the rule-level allowing a
setup to relay through the same MX with different credentials depending
on the source.
smtpd.conf.5 updated to reflect changes with help from jmc@
|
|
some rules to have a longer expiry delay than the default:
accept for [...] relay expire 8d # will stay 8 days in queue
I added the man page bits so I don't forget but I need to reword it a bit
|
|
ok gilles@
|