Skip to content
Permalink
Browse files

smtp: Simplify the MAIL command and avoid a duplication of send strings

This avoids the duplication of strings when the optional AUTH and SIZE
parameters are required. It also assists with the modifications that
are part of #4892.

Closes #4903
  • Loading branch information
captain-caveman2k committed Feb 9, 2020
1 parent 02f8de6 commit 0b8651d48bb70605ef2b0b6563e5becd09104ea6
Showing with 7 additions and 12 deletions.
  1. +7 −12 lib/smtp.c
@@ -584,18 +584,13 @@ static CURLcode smtp_perform_mail(struct connectdata *conn)
}

/* Send the MAIL command */
if(!auth && !size)
result = Curl_pp_sendf(&conn->proto.smtpc.pp,
"MAIL FROM:%s", from);
else if(auth && !size)
result = Curl_pp_sendf(&conn->proto.smtpc.pp,
"MAIL FROM:%s AUTH=%s", from, auth);
else if(auth && size)
result = Curl_pp_sendf(&conn->proto.smtpc.pp,
"MAIL FROM:%s AUTH=%s SIZE=%s", from, auth, size);
else
result = Curl_pp_sendf(&conn->proto.smtpc.pp,
"MAIL FROM:%s SIZE=%s", from, size);
result = Curl_pp_sendf(&conn->proto.smtpc.pp,
"MAIL FROM:%s%s%s%s%s",
from, /* Mandatory */
auth ? " AUTH=" : "", /* Optional (on AUTH support) */
auth ? auth : "",
size ? " SIZE=" : "", /* Optional (on SIZE support) */
size ? size : "");

free(from);
free(auth);

0 comments on commit 0b8651d

Please sign in to comment.
You can’t perform that action at this time.