[exim-dev] [Bug 248] Set variables for interface and port in…

Top Page

Reply to this message
Author: bug248
To: exim-dev
Subject: [exim-dev] [Bug 248] Set variables for interface and port in smtp transport
------- You are receiving this mail because: -------
You are the QA contact for the bug, or are watching the QA contact.


------- Comment #6 from holmgren@??? 2007-01-30 16:21 -------
On Tuesday 30 January 2007 16:16, ph10@??? wrote:
> I have committed this patch - modified to fix two bugs (just to prove I do
> read patches before applying them. :-) (1) By moving the code in verify.c,
> you lost the values of $domain during the expansion of helo_data.

Ah, didn't see that.

> (2) More
> importantly, by putting the expansion after connect() in smtp.c, you lost
> the value of helo_data completely when delivering a second message down the
> same SMTP connection, and this caused a problem when TLS was in use, when
> another EHLO takes place. The tests run OK with my fixes, and I've added a
> few more tests too.

I suspected that passed-on connections could pose problems, but then I thought
that TLS would always be started by the same process that sent the first
EHLO, and that no further EHLOs were needed. I can see that it is possible to
send a message without TLS first, then pass on the connection to the next
delivery process, which issues STARTTLS and the new EHLO, but under what
circumstances would that happen?

> > The variables should be reset when closing
> > the connection. To maintain abstraction, we then need a new smtp_close()
> > function that does that and is called in place of close(2).
> I haven't done this; typically after close() Exim will either end the
> process, or make another connection, so I wasn't sure that it was worth it.

I was mostly concerned about callout verifications, after which
$sender_ip_address and $sender_port will still be set.

Configure bugmail: http://www.exim.org/bugzilla/userprefs.cgi?tab=email