Prev: Preventing outgoing local mail being delivered to certain domains
Next: multiple IPs in and out
From: Wietse Venema on 28 Jan 2010 11:42 adrian ilarion ciobanu: > > > > Should ODMR support be in the primary MTA queue? Or should mail > > for ODMR destinations be batched up onto disk out of the MTA's > > queue, and served by dedicated servers as in: > > > > http://www.plonk.de/sw/odmr/ > odmr is mail relaying. if one chooses this solution then one probably > wants to do the same thing for any type of relaying. Nope, ETRN/ATRN mail stays queued on the server until the end-site retrieves it. By definition, the mail queue contains significant amounts of mail on a routine basis. This drags down the over-all MTA performance. This is unlike the front-end/back-end MTA setup where mail flows immediately, or the primaryMX/secondaryMX setup that is meant for the rare case that the primaryMX is unavailable. Here, the mail queue does not contain significant amounts of mail on a routine basis. > When i was thinking "exporting more functionality via a library" - `that can be made in a very spartan way, e.g. > > smtpd.c: > EXT_SMTPD_LIB int etrn_cmd(...) > > user_compiletime_config.h: > #define EXPORT_SMTPD_LIB 1 > > build_exports.h > #ifndef EXPORT_SMTPD_LIB > #define EXT_SMTPD_LIB static > #endif Sorry, when a piece of code can be called from multiple programs, that requires a precise library API definition (a contract) that specifies the interfaces of all the exposed functions including their data structures, and relevant pre and post conditions. Such a document does not exist, therefore this approach is off the table. Instead, smtpd(8) should be changed such that it calls into a library module that handles all the communication with atrnd(8) where the bulk of the new code will be implemented. This approach has proven itself over 10 years of Postfix development. Many features (flush, scache, anvil, verify, etc.) are implemented not by modifying existing code. Instead, they are implemented by implementing a new server (here, atrnd(8)) and an client library (here, atrn_client) with a well-defined interface. Via this client library, existing Postfix code (here smtpd(8)) talks to the new service. I have already mentioned these ground rules before. I am not opposed to implementing ATRN, but there has been zero evidence that doing so would actually be worth the maintenance cost (let alone the diminshingly small subset of sites that would require multiple domains on a single SASL account). Wietse
First
|
Prev
|
Pages: 1 2 3 4 5 Prev: Preventing outgoing local mail being delivered to certain domains Next: multiple IPs in and out |