1
0
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:
Daniel Stenberg 2009-12-30 22:50:42 +00:00
parent a1311e5a24
commit 6c6dc3f879
4 changed files with 18 additions and 8 deletions

View File

@ -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;
} }

View File

@ -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>

View File

@ -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>