From 5ee64be9c6ca2bcf411801834ce39db196f68529 Mon Sep 17 00:00:00 2001 From: Steve Holme Date: Sat, 23 Nov 2013 09:35:35 +0000 Subject: [PATCH] smtp: Post SMTP command expansion tidy up Removed unnecessary SMTP_STOP state changes on failure. Removed hard return on failure in smtp_state_data_resp(). --- lib/smtp.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/lib/smtp.c b/lib/smtp.c index aa3ff326a..711d3e09f 100644 --- a/lib/smtp.c +++ b/lib/smtp.c @@ -1319,7 +1319,6 @@ static CURLcode smtp_state_mail_resp(struct connectdata *conn, int smtpcode, if(smtpcode/100 != 2) { failf(data, "MAIL failed: %d", smtpcode); result = CURLE_SEND_ERROR; - state(conn, SMTP_STOP); } else /* Start the RCPT TO command */ @@ -1341,7 +1340,6 @@ static CURLcode smtp_state_rcpt_resp(struct connectdata *conn, int smtpcode, if(smtpcode/100 != 2) { failf(data, "RCPT failed: %d", smtpcode); result = CURLE_SEND_ERROR; - state(conn, SMTP_STOP); } else { smtp->rcpt = smtp->rcpt->next; @@ -1365,25 +1363,27 @@ static CURLcode smtp_state_rcpt_resp(struct connectdata *conn, int smtpcode, static CURLcode smtp_state_data_resp(struct connectdata *conn, int smtpcode, smtpstate instate) { + CURLcode result = CURLE_OK; struct SessionHandle *data = conn->data; (void)instate; /* no use for this yet */ if(smtpcode != 354) { + failf(data, "DATA failed: %d", smtpcode); + result = CURLE_SEND_ERROR; + } + else { + /* Set the progress upload size */ + Curl_pgrsSetUploadSize(data, data->set.infilesize); + + /* SMTP upload */ + Curl_setup_transfer(conn, -1, -1, FALSE, NULL, FIRSTSOCKET, NULL); + + /* End of DO phase */ state(conn, SMTP_STOP); - return CURLE_SEND_ERROR; } - /* Set the progress upload size */ - Curl_pgrsSetUploadSize(data, data->set.infilesize); - - /* SMTP upload */ - Curl_setup_transfer(conn, -1, -1, FALSE, NULL, FIRSTSOCKET, NULL); - - /* End of DO phase */ - state(conn, SMTP_STOP); - - return CURLE_OK; + return result; } /* For POSTDATA responses, which are received after the entire DATA