diff options
| author | dartraiden <wowemuh@gmail.com> | 2025-04-21 09:33:29 +0300 |
|---|---|---|
| committer | dartraiden <wowemuh@gmail.com> | 2025-04-21 09:50:38 +0300 |
| commit | cf6ba06cd445f1f4554701637d5bab581acfba98 (patch) | |
| tree | 0d9b618df1c8f888cb37221be0590f4a677fe477 /libs/libcurl/src/smtp.c | |
| parent | 842ec200cd37ae05f2a9c56f2a4040088d2ac917 (diff) | |
libcurl: update to 8.13.0
Diffstat (limited to 'libs/libcurl/src/smtp.c')
| -rw-r--r-- | libs/libcurl/src/smtp.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/libs/libcurl/src/smtp.c b/libs/libcurl/src/smtp.c index b23b74ae60..e35b22f4b1 100644 --- a/libs/libcurl/src/smtp.c +++ b/libs/libcurl/src/smtp.c @@ -68,7 +68,6 @@ #include "mime.h"
#include "socks.h"
#include "smtp.h"
-#include "strtoofft.h"
#include "strcase.h"
#include "vtls/vtls.h"
#include "cfilters.h"
@@ -81,6 +80,8 @@ #include "curl_sasl.h"
#include "warnless.h"
#include "idn.h"
+#include "strparse.h"
+
/* The last 3 #include files should be in this order */
#include "curl_printf.h"
#include "curl_memory.h"
@@ -198,7 +199,7 @@ static const struct SASLproto saslsmtp = { * supported authentication mechanisms.
*/
static bool smtp_endofresp(struct Curl_easy *data, struct connectdata *conn,
- char *line, size_t len, int *resp)
+ const char *line, size_t len, int *resp)
{
struct smtp_conn *smtpc = &conn->proto.smtpc;
bool result = FALSE;
@@ -214,11 +215,14 @@ static bool smtp_endofresp(struct Curl_easy *data, struct connectdata *conn, only send the response code instead as per Section 4.2. */
if(line[3] == ' ' || len == 5) {
char tmpline[6];
-
+ curl_off_t code;
+ const char *p = tmpline;
result = TRUE;
- memset(tmpline, '\0', sizeof(tmpline));
memcpy(tmpline, line, (len == 5 ? 5 : 3));
- *resp = curlx_sltosi(strtol(tmpline, NULL, 10));
+ tmpline[len == 5 ? 5 : 3 ] = 0;
+ if(Curl_str_number(&p, &code, len == 5 ? 99999 : 999))
+ return FALSE;
+ *resp = (int) code;
/* Make sure real server never sends internal value */
if(*resp == 1)
@@ -397,7 +401,6 @@ static CURLcode smtp_perform_upgrade_tls(struct Curl_easy *data) goto out;
/* Change the connection handler and SMTP state */
conn->handler = &Curl_handler_smtps;
- conn->bits.tls_upgraded = TRUE;
}
DEBUGASSERT(!smtpc->ssldone);
@@ -1610,10 +1613,8 @@ static CURLcode smtp_setup_connection(struct Curl_easy *data, {
CURLcode result;
- /* Clear the TLS upgraded flag */
- conn->bits.tls_upgraded = FALSE;
-
/* Initialise the SMTP layer */
+ (void)conn;
result = smtp_init(data);
CURL_TRC_SMTP(data, "smtp_setup_connection() -> %d", result);
return result;
|
