Commit 4838d196 authored by Steve Holme's avatar Steve Holme
Browse files

email: Simplified the logout / quit functions

Moved the blocking state machine to the disconnect functions so that the
logout / quit functions are only responsible for sending the actual
command needed to logout or quit.

Additionally removed the hard return on failure.
parent f691f960
Loading
Loading
Loading
Loading
+5 −7
Original line number Diff line number Diff line
@@ -1950,14 +1950,11 @@ static CURLcode imap_logout(struct connectdata *conn)
  CURLcode result = CURLE_OK;

  /* Send the LOGOUT command */
  result = imap_sendf(conn, "LOGOUT", NULL);
  if(result)
    return result;
  result = imap_sendf(conn, "LOGOUT");

  if(!result)
    state(conn, IMAP_LOGOUT);

  result = imap_block_statemach(conn);

  return result;
}

@@ -1979,7 +1976,8 @@ static CURLcode imap_disconnect(struct connectdata *conn, bool dead_connection)
  /* The IMAP session may or may not have been allocated/setup at this
     point! */
  if(!dead_connection && imapc->pp.conn)
    (void)imap_logout(conn); /* ignore errors on LOGOUT */
    if(!imap_logout(conn))
      (void)imap_block_statemach(conn); /* ignore errors on LOGOUT */

  /* Disconnect from the server */
  Curl_pp_disconnect(&imapc->pp);
+5 −7
Original line number Diff line number Diff line
@@ -1470,14 +1470,11 @@ static CURLcode pop3_quit(struct connectdata *conn)
  CURLcode result = CURLE_OK;

  /* Send the QUIT command */
  result = Curl_pp_sendf(&conn->proto.pop3c.pp, "QUIT", NULL);
  if(result)
    return result;
  result = Curl_pp_sendf(&conn->proto.pop3c.pp, "QUIT");

  if(!result)
    state(conn, POP3_QUIT);

  result = pop3_block_statemach(conn);

  return result;
}

@@ -1500,7 +1497,8 @@ static CURLcode pop3_disconnect(struct connectdata *conn,
  /* The POP3 session may or may not have been allocated/setup at this
     point! */
  if(!dead_connection && pop3c->pp.conn)
    (void)pop3_quit(conn); /* ignore errors on QUIT */
    if(!pop3_quit(conn))
      (void)pop3_block_statemach(conn); /* ignore errors on QUIT */

  /* Disconnect from the server */
  Curl_pp_disconnect(&pop3c->pp);
+4 −6
Original line number Diff line number Diff line
@@ -1501,13 +1501,10 @@ static CURLcode smtp_quit(struct connectdata *conn)

  /* Send the QUIT command */
  result = Curl_pp_sendf(&conn->proto.smtpc.pp, "QUIT");
  if(result)
    return result;

  if(!result)
    state(conn, SMTP_QUIT);

  result = smtp_block_statemach(conn);

  return result;
}

@@ -1530,7 +1527,8 @@ static CURLcode smtp_disconnect(struct connectdata *conn,
  /* The SMTP session may or may not have been allocated/setup at this
     point! */
  if(!dead_connection && smtpc->pp.conn)
    (void)smtp_quit(conn); /* ignore errors on QUIT */
    if(!smtp_quit(conn))
      (void)smtp_block_statemach(conn); /* ignore errors on QUIT */

  /* Disconnect from the server */
  Curl_pp_disconnect(&smtpc->pp);