Don't bother trying to see if the server advertises EHLO. Simply always

2003-11-05  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/smtp/camel-smtp-transport.c (connect_to_server): Don't
	bother trying to see if the server advertises EHLO. Simply always
	try EHLO and fall back to HELO if EHLO fails. Fixes bug #50535.

svn path=/trunk/; revision=23199
This commit is contained in:
Jeffrey Stedfast 2003-11-06 16:26:26 +00:00 committed by Jeffrey Stedfast
parent 7827d488b3
commit acb207edba
2 changed files with 15 additions and 18 deletions

View File

@ -1,3 +1,9 @@
2003-11-05 Jeffrey Stedfast <fejj@ximian.com>
* providers/smtp/camel-smtp-transport.c (connect_to_server): Don't
bother trying to see if the server advertises EHLO. Simply always
try EHLO and fall back to HELO if EHLO fails. Fixes bug #50535.
2003-11-05 Not Zed <NotZed@Ximian.com>
* camel-smime-context.c (camel_smime_context_describe_part): new

View File

@ -309,27 +309,18 @@ connect_to_server (CamelService *service, int try_starttls, CamelException *ex)
g_free (respbuf);
return FALSE;
}
if (strstr (respbuf, "ESMTP"))
transport->flags |= CAMEL_SMTP_TRANSPORT_IS_ESMTP;
} while (*(respbuf+3) == '-'); /* if we got "220-" then loop again */
g_free (respbuf);
/* send EHLO (or HELO, depending on the service type) */
if (!(transport->flags & CAMEL_SMTP_TRANSPORT_IS_ESMTP)) {
/* If we did not auto-detect ESMTP, we should still send EHLO */
transport->flags |= CAMEL_SMTP_TRANSPORT_IS_ESMTP;
if (!smtp_helo (transport, ex)) {
if (!transport->connected)
return FALSE;
/* Okay, apparently this server doesn't support ESMTP */
camel_exception_clear (ex);
transport->flags &= ~CAMEL_SMTP_TRANSPORT_IS_ESMTP;
if (!smtp_helo (transport, ex) && !transport->connected)
return FALSE;
}
} else {
/* send EHLO */
/* Try sending EHLO */
transport->flags |= CAMEL_SMTP_TRANSPORT_IS_ESMTP;
if (!smtp_helo (transport, ex)) {
if (!transport->connected)
return FALSE;
/* Fall back to HELO */
camel_exception_clear (ex);
transport->flags &= ~CAMEL_SMTP_TRANSPORT_IS_ESMTP;
if (!smtp_helo (transport, ex) && !transport->connected)
return FALSE;
}