New versions checked in, though not extensively tested yet. Ilja Booij <[EMAIL PROTECTED]> said:
> sounds ok to me :) > > Ilja > > Aaron Stone wrote: > > > Working on it as we speak! Catch you in about an hour? > > > > Aaron > > > > > > Ilja Booij <[EMAIL PROTECTED]> said: > > > > > >>Hi, > >> > >>Aaron Stone wrote: > >> > >> > >>>The reason for the double deliveries in the LMTP daemon is because the old > >>>insert_messages() function used to take lists of users to directly deliver. > >>>The new insert_messages() function takes a list of dsnuser structures, and > >>>expects that *either* the useridnr field is filled (for direct-to-useridnr > >>>delivery, which isn't supported by any of the frontends, but is supported > >>>in > >>>the lower layers ;-) or the address field, which is first checked as a > >>>username and then as an alias (this allows usernames in the form of > >>>'[EMAIL PROTECTED]' to operate without requiring an alias that says > >>>'[EMAIL PROTECTED] > >>>delivers to [EMAIL PROTECTED]'). > >>> > >>>Some refactoring might be necessary, because we need to inform the MTA whether > >>>or not its envelope recipients were valid before it will send us the > >>>message. > >>>This means users need to be validated before read_header(), which is a problem > >>>because at the moment this vaildation happens in insert_messages(). > >> > >>OK, that's clear > >> > >>>Fine and dandy in pipe land, where the MTA will send the message regardless of > >>>the disposition of the recipients, and only at the very end are error > >>>conditions returned as exit codes... in LMTP land we need to know ahead of > > > > time. > > > >>>I think what I'll do is move the user validation code from > >>>insert_messages() > >>>into dsn.c, perhaps calling it dsn_check_users() or > >>>dsn_prepare_deliveries(). > >>>Then, we'll have this order: > >>> > >>>For command-line and envelope-recipient deliveries: > >>>- receive addresses and store them into the dsnusers list. > >>>- dsn_prepare_deliveries() > >>>- if no deliveries are valid, return an error. > >>> > >>>- read_header() > >>> > >>>For deliver-to header deliveries: > >>>- mime_readheader() > >>>- mail_adr_list() > >>>- dsn_prepare_deliveries() > >>>- if no deliveries are valid, return an error. > >>> > >>>- insert_messages() > >> > >>I like the part where you say 'What I'll do' :) > >>Do you think this work will take long? I think we must really release > >>rc3 tomorrow (Friday, March 5th). This stuff really has to work if we > >>want to release. > >> > >>Ilja > >> > >>_______________________________________________ > >>Dbmail-dev mailing list > >>Dbmail-dev@dbmail.org > >>http://twister.fastxs.net/mailman/listinfo/dbmail-dev > >> > > > > > > > > > _______________________________________________ > Dbmail-dev mailing list > Dbmail-dev@dbmail.org > http://twister.fastxs.net/mailman/listinfo/dbmail-dev > --