summaryrefslogtreecommitdiff
path: root/libs/libcurl/src/smtp.c
diff options
context:
space:
mode:
authordartraiden <wowemuh@gmail.com>2025-04-21 09:33:29 +0300
committerdartraiden <wowemuh@gmail.com>2025-04-21 09:50:38 +0300
commitcf6ba06cd445f1f4554701637d5bab581acfba98 (patch)
tree0d9b618df1c8f888cb37221be0590f4a677fe477 /libs/libcurl/src/smtp.c
parent842ec200cd37ae05f2a9c56f2a4040088d2ac917 (diff)
libcurl: update to 8.13.0
Diffstat (limited to 'libs/libcurl/src/smtp.c')
-rw-r--r--libs/libcurl/src/smtp.c19
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;