1
0
mirror of https://github.com/moparisthebest/curl synced 2024-08-13 17:03:50 -04: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)
{
CURLcode result;
struct FTP *smtp = conn->data->state.proto.smtp;
struct smtp_conn *smtpc = &conn->proto.smtpc;
/* send EHLO */
result = Curl_pp_sendf(&conn->proto.smtpc.pp, "EHLO %s",
smtp->user?smtp->user:"");
result = Curl_pp_sendf(&conn->proto.smtpc.pp, "EHLO %s", smtpc->domain);
if(result)
return result;
@ -545,6 +544,8 @@ static CURLcode smtp_connect(struct connectdata *conn,
struct smtp_conn *smtpc = &conn->proto.smtpc;
struct SessionHandle *data=conn->data;
struct pingpong *pp=&smtpc->pp;
const char *path = conn->data->state.path;
int len;
*done = FALSE; /* default to not done yet */
@ -609,6 +610,12 @@ static CURLcode smtp_connect(struct connectdata *conn,
pp->endofresp = smtp_endofresp;
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
*/
state(conn, SMTP_SERVERGREET);
@ -801,12 +808,15 @@ static CURLcode smtp_dophase_done(struct connectdata *conn,
{
CURLcode result = CURLE_OK;
struct FTP *smtp = conn->data->state.proto.smtp;
struct smtp_conn *smtpc= &conn->proto.smtpc;
(void)connected;
if(smtp->transfer != FTPTRANSFER_BODY)
/* no data to transfer */
result=Curl_setup_transfer(conn, -1, -1, FALSE, NULL, -1, NULL);
free(smtpc->domain);
return result;
}

View File

@ -45,9 +45,9 @@ typedef enum {
struct */
struct smtp_conn {
struct pingpong pp;
char *domain; /* what to send in the EHLO */
int eob; /* number of bytes of the EOB (End Of Body) that has been
received thus far */
char *domain; /* what to send in the EHLO */
int eob; /* number of bytes of the EOB (End Of Body) that has been
received thus far */
smtpstate state; /* always use smtp.c:state() to change state! */
};

View File

@ -26,7 +26,7 @@ To: another
body
</stdin>
<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>
</client>

View File

@ -32,7 +32,7 @@ To: another
body
</stdin>
<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>
</client>