Commit 6c6dc3f8 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

modified to get the EHLO domain from the path part of the URL instead of the

user name
parent a1311e5a
Loading
Loading
Loading
Loading
+13 −3
Original line number Diff line number Diff line
@@ -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;
}

+1 −1
Original line number Diff line number Diff line
@@ -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>

+1 −1
Original line number Diff line number Diff line
@@ -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>

+3 −3

File changed.

Contains only whitespace changes.