diff options
Diffstat (limited to 'camel')
-rw-r--r-- | camel/ChangeLog | 3 | ||||
-rw-r--r-- | camel/providers/smtp/camel-smtp-transport.c | 19 |
2 files changed, 15 insertions, 7 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog index 6966ac0578..ace0859687 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -1,5 +1,8 @@ 2000-08-01 Jeffrey Stedfast <fejj@helixcode.com> + * providers/smtp/camel-smtp-transport.c (smtp_helo): When forced + to use the IP, place it in square brackets. + * providers/imap/camel-imap-utils.c (imap_translate_sexp): New and improved sexp parser. An honest try at using e-sexp is wrapped in a #ifdef at the bottom of the file but is currently not used diff --git a/camel/providers/smtp/camel-smtp-transport.c b/camel/providers/smtp/camel-smtp-transport.c index 59ee2457f0..0f70d6314e 100644 --- a/camel/providers/smtp/camel-smtp-transport.c +++ b/camel/providers/smtp/camel-smtp-transport.c @@ -504,13 +504,18 @@ smtp_helo (CamelSmtpTransport *transport, CamelException *ex) host = gethostbyaddr ((gchar *)&transport->localaddr.sin_addr, sizeof (transport->localaddr.sin_addr), AF_INET); /* hiya server! how are you today? */ - if (transport->smtp_is_esmtp) - cmdbuf = g_strdup_printf ("EHLO %s\r\n", host && host->h_name ? host->h_name : - inet_ntoa (transport->localaddr.sin_addr)); - else - cmdbuf = g_strdup_printf ("HELO %s\r\n", host && host->h_name ? host->h_name : - inet_ntoa (transport->localaddr.sin_addr)); - + if (transport->smtp_is_esmtp) { + if (host && host->h_name) + cmdbuf = g_strdup_printf ("EHLO %s\r\n", host->h_name); + else + cmdbuf = g_strdup_printf ("EHLO [%s]\r\n", inet_ntoa (transport->localaddr.sin_addr)); + } else { + if (host && host->h_name) + cmdbuf = g_strdup_printf ("HELO %s\r\n", host->h_name); + else + cmdbuf = g_strdup_printf ("HELO [%s]\r\n", inet_ntoa (transport->localaddr.sin_addr)); + } + d(fprintf (stderr, "sending : %s", cmdbuf)); if (camel_stream_write (transport->ostream, cmdbuf, strlen (cmdbuf)) == -1) { g_free (cmdbuf); |