Commit 62bd2174 authored by Steve Holme's avatar Steve Holme
Browse files

smtp: Fixed an issue when processing EHLO failure responses (Part 2)

Follow up fix to commit 23d17190 as EHLO capabilities can exist
within a positive response line.
parent f0bfc0fb
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -213,19 +213,18 @@ static int smtp_endofresp(struct pingpong *pp, int *resp)
  size_t len = strlen(pp->linestart_resp);
  struct connectdata *conn = pp->conn;
  struct smtp_conn *smtpc = &conn->proto.smtpc;
  int result = FALSE;
  size_t wordlen;

  if(len < 4 || !ISDIGIT(line[0]) || !ISDIGIT(line[1]) || !ISDIGIT(line[2]))
    return FALSE;       /* Nothing for us */

  /* Do we have a command response? */
  if(line[3] == ' ') {
  if((result = (line[3] == ' ')) != 0)
    *resp = curlx_sltosi(strtol(line, NULL, 10));
    return TRUE;
  }

  /* Are we processing EHLO command data? */
  if(smtpc->state == SMTP_EHLO) {
  if(smtpc->state == SMTP_EHLO && (!result || (result && *resp == 250))) {
    line += 4;
    len -= 4;

@@ -281,7 +280,7 @@ static int smtp_endofresp(struct pingpong *pp, int *resp)
    }
  }

  return FALSE;
  return result;
}

/* This is the ONLY way to change SMTP state! */