mirror of
https://github.com/curl/curl.git
synced 2024-11-21 01:16:58 +08:00
SMTP: Added support for returning SMTP response codes
Set the conn->data->info.httpcode variable in smtp_statemach_act() to allow Curl_getinfo() to return the SMTP response code via the CURLINFO_RESPONSE_CODE action.
This commit is contained in:
parent
779fa13ef9
commit
5430007222
@ -5,7 +5,7 @@
|
|||||||
.\" * | (__| |_| | _ <| |___
|
.\" * | (__| |_| | _ <| |___
|
||||||
.\" * \___|\___/|_| \_\_____|
|
.\" * \___|\___/|_| \_\_____|
|
||||||
.\" *
|
.\" *
|
||||||
.\" * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
|
.\" * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
.\" *
|
.\" *
|
||||||
.\" * This software is licensed as described in the file COPYING, which
|
.\" * This software is licensed as described in the file COPYING, which
|
||||||
.\" * you should have received as part of this distribution. The terms
|
.\" * you should have received as part of this distribution. The terms
|
||||||
@ -44,11 +44,13 @@ The following information can be extracted:
|
|||||||
.IP CURLINFO_EFFECTIVE_URL
|
.IP CURLINFO_EFFECTIVE_URL
|
||||||
Pass a pointer to a char pointer to receive the last used effective URL.
|
Pass a pointer to a char pointer to receive the last used effective URL.
|
||||||
.IP CURLINFO_RESPONSE_CODE
|
.IP CURLINFO_RESPONSE_CODE
|
||||||
Pass a pointer to a long to receive the last received HTTP or FTP code. This
|
Pass a pointer to a long to receive the last received HTTP, FTP or SMTP
|
||||||
option was known as CURLINFO_HTTP_CODE in libcurl 7.10.7 and earlier. This
|
response code. This option was previously known as CURLINFO_HTTP_CODE in
|
||||||
will be zero if no server response code has been received. Note that a proxy's
|
libcurl 7.10.7 and earlier. The value will be zero if no server response code
|
||||||
CONNECT response should be read with \fICURLINFO_HTTP_CONNECTCODE\fP and not
|
has been received. Note that a proxy's CONNECT response should be read with
|
||||||
this.
|
\fICURLINFO_HTTP_CONNECTCODE\fP and not this.
|
||||||
|
|
||||||
|
Support for SMTP responses added in 7.25.0.
|
||||||
.IP CURLINFO_HTTP_CONNECTCODE
|
.IP CURLINFO_HTTP_CONNECTCODE
|
||||||
Pass a pointer to a long to receive the last received proxy response code to a
|
Pass a pointer to a long to receive the last received proxy response code to a
|
||||||
CONNECT request.
|
CONNECT request.
|
||||||
|
@ -1108,6 +1108,10 @@ static CURLcode smtp_statemach_act(struct connectdata *conn)
|
|||||||
if(result)
|
if(result)
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
|
if(smtpc->state != SMTP_QUIT)
|
||||||
|
/* store the latest code for later retrieval */
|
||||||
|
data->info.httpcode = smtpcode;
|
||||||
|
|
||||||
if(smtpcode) {
|
if(smtpcode) {
|
||||||
/* we have now received a full SMTP server response */
|
/* we have now received a full SMTP server response */
|
||||||
switch(smtpc->state) {
|
switch(smtpc->state) {
|
||||||
@ -1524,6 +1528,7 @@ static CURLcode smtp_quit(struct connectdata *conn)
|
|||||||
result = Curl_pp_sendf(&conn->proto.smtpc.pp, "QUIT");
|
result = Curl_pp_sendf(&conn->proto.smtpc.pp, "QUIT");
|
||||||
if(result)
|
if(result)
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
state(conn, SMTP_QUIT);
|
state(conn, SMTP_QUIT);
|
||||||
|
|
||||||
result = smtp_easy_statemach(conn);
|
result = smtp_easy_statemach(conn);
|
||||||
@ -1564,7 +1569,6 @@ static CURLcode smtp_disconnect(struct connectdata *conn,
|
|||||||
|
|
||||||
/* This won't already be freed in some error cases */
|
/* This won't already be freed in some error cases */
|
||||||
Curl_safefree(smtpc->domain);
|
Curl_safefree(smtpc->domain);
|
||||||
smtpc->domain = NULL;
|
|
||||||
|
|
||||||
return CURLE_OK;
|
return CURLE_OK;
|
||||||
}
|
}
|
||||||
@ -1581,8 +1585,7 @@ static CURLcode smtp_dophase_done(struct connectdata *conn,
|
|||||||
/* no data to transfer */
|
/* no data to transfer */
|
||||||
Curl_setup_transfer(conn, -1, -1, FALSE, NULL, -1, NULL);
|
Curl_setup_transfer(conn, -1, -1, FALSE, NULL, -1, NULL);
|
||||||
|
|
||||||
free(smtpc->domain);
|
Curl_safefree(smtpc->domain);
|
||||||
smtpc->domain = NULL;
|
|
||||||
|
|
||||||
return CURLE_OK;
|
return CURLE_OK;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user