diff options
author | Eduardo Chappa <chappa@washington.edu> | 2013-02-04 23:48:14 -0700 |
---|---|---|
committer | Eduardo Chappa <chappa@washington.edu> | 2013-02-04 23:48:14 -0700 |
commit | dc6c0f8d846e14fc6841516ad772553fc5975bd6 (patch) | |
tree | 95dd7acafea7def35a7aee1e8b77c26da5795498 | |
parent | 90af71abbc09fc4a4aa9e4817f9f6cd03ea9edb5 (diff) | |
download | alpine-dc6c0f8d846e14fc6841516ad772553fc5975bd6.tar.xz |
Fix SMTP bug
-rw-r--r-- | imap/src/c-client/smtp.c | 28 | ||||
-rw-r--r-- | pith/pine.hlp | 31 |
2 files changed, 40 insertions, 19 deletions
diff --git a/imap/src/c-client/smtp.c b/imap/src/c-client/smtp.c index 0a3cf489..1b748b71 100644 --- a/imap/src/c-client/smtp.c +++ b/imap/src/c-client/smtp.c @@ -420,34 +420,36 @@ SENDSTREAM *smtp_close (SENDSTREAM *stream) long smtp_mail (SENDSTREAM *stream,char *type,ENVELOPE *env,BODY *body) { RFC822BUFFER buf; - char tmp[SENDBUFLEN+1]; + char tmp[SENDBUFLEN+1], smtpserver[SENDBUFLEN+1]; long error = NIL; long retry = NIL; buf.f = smtp_soutr; /* initialize buffer */ buf.s = stream->netstream; buf.end = (buf.beg = buf.cur = tmp) + SENDBUFLEN; tmp[SENDBUFLEN] = '\0'; /* must have additional null guard byte */ + smtpserver[SENDBUFLEN] = '\0'; if (!(env->to || env->cc || env->bcc)) { /* no recipients in request */ smtp_seterror (stream,SMTPHARDERROR,"No recipients specified"); return NIL; } - do { /* make sure stream is in good shape */ + /* get this now in case the rug is pulled from under us */ + sprintf (smtpserver,"{%.200s/smtp%s}<none>", + (long) mail_parameters (NIL,GET_TRUSTDNS,NIL) ? + ((long) mail_parameters (NIL,GET_SASLUSESPTRNAME,NIL) ? + net_remotehost (stream->netstream) : + net_host (stream->netstream)) : + stream->host, + (stream->netstream->dtb == + (NETDRIVER *) mail_parameters (NIL,GET_SSLDRIVER,NIL)) ? + "/ssl" : ""); + do { smtp_send (stream,"RSET",NIL); if (retry) { /* need to retry with authentication? */ NETMBX mb; /* yes, build remote name for authentication */ - sprintf (tmp,"{%.200s/smtp%s}<none>", - (long) mail_parameters (NIL,GET_TRUSTDNS,NIL) ? - ((long) mail_parameters (NIL,GET_SASLUSESPTRNAME,NIL) ? - net_remotehost (stream->netstream) : - net_host (stream->netstream)) : - stream->host, - (stream->netstream->dtb == - (NETDRIVER *) mail_parameters (NIL,GET_SSLDRIVER,NIL)) ? - "/ssl" : ""); - mail_valid_net_parse (tmp,&mb); - if (!smtp_auth (stream,&mb,tmp)) return NIL; + mail_valid_net_parse (smtpserver,&mb); + if (!smtp_auth (stream,&mb,smtpserver)) return NIL; retry = NIL; /* no retry at this point */ } diff --git a/pith/pine.hlp b/pith/pine.hlp index 3af1062e..b4cb5283 100644 --- a/pith/pine.hlp +++ b/pith/pine.hlp @@ -3,8 +3,8 @@ # T H E A L P I N E M E S S A G E S Y S T E M # #/* ======================================================================== -# * Copyright 2006-2008 University of Washington # * Copyright 2013 Eduardo Chappa +# * Copyright 2006-2008 University of Washington # * # * Licensed under the Apache License, Version 2.0 (the "License"); # * you may not use this file except in compliance with the License. @@ -155,8 +155,8 @@ Version <!--#echo var="ALPINE_VERSION"-->(<!--#echo var="ALPINE_REVISION"-->) <!--chtml if pinemode="running"--> (built <!--#echo var=ALPINE_COMPILE_DATE-->) <!--chtml endif--> -<BR>Copyright 2006-2008 University of Washington <BR>Copyright 2013 Eduardo Chappa +<BR>Copyright 2006-2008 University of Washington </DIV> <P> @@ -180,6 +180,25 @@ Additions include: <P> <UL> + <LI> Quota command includes subcommands for printing, forwarding, etc. +</UL> + +<P> +Bugs that have been addressed include: +<P> +<UL> + <LI> Crash when a non-compliant SMTP server closes a connection without a LOGOUT +</UL> + +<P> +Version 2.10 addresses bugs found in previous releases and has a few +additions as well. + +<P> +Additions include: +<P> + +<UL> <LI> Quota report for IMAP folders that support it (press the "@" command in the index screen of such folder). <LI> Search a folder for the content of any header with the ";" command. <LI> Foreign characters are decoded correctly in IMAP folders. @@ -544,8 +563,8 @@ page at <CENTER><A HREF="http://www.washington.edu/alpine/credits.html">http://www.washington.edu/alpine/credits</A></CENTER> <P> -Alpine Copyright 2006-2008 University of Washington, -Copyright 2013 Eduardo Chappa. +Alpine Copyright 2013 Eduardo Chappa, +Copyright 2006-2008 University of Washington. <P> Additional legal notices can be found <A HREF="h_news_legal">here</A> @@ -1415,8 +1434,8 @@ Version <!--#echo var="ALPINE_VERSION"--> <BR>(built <!--#echo var=ALPINE_COMPILE_DATE-->) <!--chtml endif--> </DIV> -<CENTER>Copyright 2006-2008 University of Washington -<BR> Copyright 2013 Eduardo Chappa +<CENTER>Copyright 2013 Eduardo Chappa, +<BR>Copyright 2006-2008 University of Washington. </CENTER> <P> |