Will now always send EHLO first, if that fails it will fall back on HELO.

2000-06-09  Jeffrey Stedfast  <fejj@helixcode.com>

	* providers/smtp/camel-smtp-transport.c (smtp_connect): Will now always
	send EHLO first, if that fails it will fall back on HELO.
	(esmtp_get_authtypes): Should now correctly parse authtypes.

svn path=/trunk/; revision=3490
This commit is contained in:
Jeffrey Stedfast
2000-06-09 18:58:57 +00:00
committed by Jeffrey Stedfast
parent 9e8db9cf29
commit 59d329b5b0
3 changed files with 36 additions and 5 deletions

View File

@ -1,3 +1,9 @@
2000-06-09 Jeffrey Stedfast <fejj@helixcode.com>
* providers/smtp/camel-smtp-transport.c (smtp_connect): Will now always
send EHLO first, if that fails it will fall back on HELO.
(esmtp_get_authtypes): Should now correctly parse authtypes.
2000-06-07 Jeffrey Stedfast <fejj@helixcode.com>
* providers/imap/camel-imap-summary.c: Now builds (not that it's worth much yet).

View File

@ -635,7 +635,20 @@ message_changed (CamelMimeMessage *m, int type, CamelImapFolder *mf)
static CamelMimeMessage *
imap_get_message_by_uid (CamelFolder *folder, const gchar *uid, CamelException *ex)
{
/* NOTE: extremely easy to do in IMAP - just needa code it ;-) */
CamelImapFolder *imap_folder = CAMEL_IMAP_FOLDER (folder);
CamelImapStore *store = CAMEL_IMAP_STORE (folder->parent_store);
CamelImapStream *imap_stream;
CamelMimeMessage *message;
gchar *cmdid, *cmdbuf;
}
#if 0
static CamelMimeMessage *
imap_get_message_by_uid (CamelFolder *folder, const gchar *uid, CamelException *ex)
{
/* NOTE: oh boy, this is gonna be complicated */
CamelImapFolder *imap_folder = CAMEL_IMAP_FOLDER (folder);
CamelStreamMem *message_stream = NULL;
CamelMimeMessage *message = NULL;
@ -726,6 +739,7 @@ imap_get_message_by_uid (CamelFolder *folder, const gchar *uid, CamelException *
return NULL;
}
#endif
GPtrArray *
imap_get_summary (CamelFolder *folder, CamelException *ex)

View File

@ -128,12 +128,13 @@ camel_smtp_transport_get_type (void)
static gboolean
smtp_connect (CamelService *service, CamelException *ex)
{
CamelSmtpTransport *transport = CAMEL_SMTP_TRANSPORT (service);
struct hostent *h;
struct sockaddr_in sin;
gint fd, num, i;
guint32 addrlen;
gchar *pass = NULL, *respbuf = NULL;
CamelSmtpTransport *transport = CAMEL_SMTP_TRANSPORT (service);
if (!service_class->connect (service, ex))
return FALSE;
@ -188,7 +189,17 @@ smtp_connect (CamelService *service, CamelException *ex)
g_free (respbuf);
/* send HELO (or EHLO, depending on the service type) */
smtp_helo (transport, ex);
if (!transport->smtp_is_esmtp) {
/* If we did not auto-detect ESMTP, we should still send EHLO */
transport->smtp_is_esmtp = TRUE;
if (!smtp_helo (transport, ex)) {
/* Okay, apprently this server doesn't support ESMTP */
transport->smtp_is_esmtp = FALSE;
smtp_helo (transport, ex);
}
} else {
smtp_helo (transport, ex);
}
/* check to see if AUTH is required, if so...then AUTH ourselves */
if (transport->smtp_is_esmtp && transport->esmtp_supported_authtypes) {
@ -239,11 +250,11 @@ static GList
GList *ret = NULL;
gchar *start, *end;
if (!(start = strstr (buffer, " AUTH ")))
if (!(start = strstr (buffer, "AUTH")))
return NULL;
/* advance to the first token */
for (start += 6; *start && *start != ' '; start++);
for (start += 4; *start && *start != ' ' && *start != '='; start++);
for ( ; *start; ) {
/* advance to the end of the token */