mirror of
https://github.com/moparisthebest/curl
synced 2024-11-15 14:05:03 -05:00
modified to get the EHLO domain from the path part of the URL instead of the
user name
This commit is contained in:
parent
a1311e5a24
commit
6c6dc3f879
16
lib/smtp.c
16
lib/smtp.c
@ -248,11 +248,10 @@ static void state(struct connectdata *conn,
|
|||||||
static CURLcode smtp_state_ehlo(struct connectdata *conn)
|
static CURLcode smtp_state_ehlo(struct connectdata *conn)
|
||||||
{
|
{
|
||||||
CURLcode result;
|
CURLcode result;
|
||||||
struct FTP *smtp = conn->data->state.proto.smtp;
|
struct smtp_conn *smtpc = &conn->proto.smtpc;
|
||||||
|
|
||||||
/* send EHLO */
|
/* send EHLO */
|
||||||
result = Curl_pp_sendf(&conn->proto.smtpc.pp, "EHLO %s",
|
result = Curl_pp_sendf(&conn->proto.smtpc.pp, "EHLO %s", smtpc->domain);
|
||||||
smtp->user?smtp->user:"");
|
|
||||||
if(result)
|
if(result)
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
@ -545,6 +544,8 @@ static CURLcode smtp_connect(struct connectdata *conn,
|
|||||||
struct smtp_conn *smtpc = &conn->proto.smtpc;
|
struct smtp_conn *smtpc = &conn->proto.smtpc;
|
||||||
struct SessionHandle *data=conn->data;
|
struct SessionHandle *data=conn->data;
|
||||||
struct pingpong *pp=&smtpc->pp;
|
struct pingpong *pp=&smtpc->pp;
|
||||||
|
const char *path = conn->data->state.path;
|
||||||
|
int len;
|
||||||
|
|
||||||
*done = FALSE; /* default to not done yet */
|
*done = FALSE; /* default to not done yet */
|
||||||
|
|
||||||
@ -609,6 +610,12 @@ static CURLcode smtp_connect(struct connectdata *conn,
|
|||||||
pp->endofresp = smtp_endofresp;
|
pp->endofresp = smtp_endofresp;
|
||||||
pp->conn = conn;
|
pp->conn = conn;
|
||||||
|
|
||||||
|
if(!*path)
|
||||||
|
path = "localhost";
|
||||||
|
|
||||||
|
/* url decode the path and use it as domain with EHLO */
|
||||||
|
smtpc->domain = curl_easy_unescape(conn->data, path, 0, &len);
|
||||||
|
|
||||||
/* When we connect, we start in the state where we await the server greeting
|
/* When we connect, we start in the state where we await the server greeting
|
||||||
*/
|
*/
|
||||||
state(conn, SMTP_SERVERGREET);
|
state(conn, SMTP_SERVERGREET);
|
||||||
@ -801,12 +808,15 @@ static CURLcode smtp_dophase_done(struct connectdata *conn,
|
|||||||
{
|
{
|
||||||
CURLcode result = CURLE_OK;
|
CURLcode result = CURLE_OK;
|
||||||
struct FTP *smtp = conn->data->state.proto.smtp;
|
struct FTP *smtp = conn->data->state.proto.smtp;
|
||||||
|
struct smtp_conn *smtpc= &conn->proto.smtpc;
|
||||||
(void)connected;
|
(void)connected;
|
||||||
|
|
||||||
if(smtp->transfer != FTPTRANSFER_BODY)
|
if(smtp->transfer != FTPTRANSFER_BODY)
|
||||||
/* no data to transfer */
|
/* no data to transfer */
|
||||||
result=Curl_setup_transfer(conn, -1, -1, FALSE, NULL, -1, NULL);
|
result=Curl_setup_transfer(conn, -1, -1, FALSE, NULL, -1, NULL);
|
||||||
|
|
||||||
|
free(smtpc->domain);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ To: another
|
|||||||
body
|
body
|
||||||
</stdin>
|
</stdin>
|
||||||
<command>
|
<command>
|
||||||
smtp://%HOSTIP:%SMTPPORT -u user:secret --mail-rcpt 802@foo --mail-from 802@from -T -
|
smtp://%HOSTIP:%SMTPPORT/user --mail-rcpt 802@foo --mail-from 802@from -T -
|
||||||
</command>
|
</command>
|
||||||
</client>
|
</client>
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ To: another
|
|||||||
body
|
body
|
||||||
</stdin>
|
</stdin>
|
||||||
<command>
|
<command>
|
||||||
smtp://%HOSTIP:%SMTPPORT -u user:secret --mail-rcpt 803@foo --mail-from 803@from -T -
|
smtp://%HOSTIP:%SMTPPORT/user --mail-rcpt 803@foo --mail-from 803@from -T -
|
||||||
</command>
|
</command>
|
||||||
</client>
|
</client>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user