← Commit list

d191de891a

Joshua Rogers
Joshua Rogers
2026-06-02
SUCCESS Duration: 247s

Subject

telnet: honor CURLOPT_TIMEOUT in send_telnet_data()

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

lib/telnet.c+9 -2
@@ -53,6 +53,7 @@
#include "curl_trc.h"
#include "progress.h"
#include "arpa_telnet.h"
+#include "connect.h"
#include "select.h"
#include "curlx/strparse.h"
@@ -645,13 +646,19 @@ static CURLcode send_telnet_data(struct Curl_easy *data,
while(!result && total_written < outlen) {
/* Make sure socket is writable to avoid EWOULDBLOCK condition */
struct pollfd pfd[1];
+ timediff_t timeout_ms = Curl_timeleft_ms(data);
pfd[0].fd = conn->sock[FIRSTSOCKET];
pfd[0].events = POLLOUT;
- switch(Curl_poll(pfd, 1, -1)) {
+ if(timeout_ms < 0)
+ return CURLE_OPERATION_TIMEDOUT;
+ /* 0 means no timeout configured; pass -1 to poll for infinite wait */
+ switch(Curl_poll(pfd, 1, timeout_ms ? timeout_ms : -1)) {
case -1: /* error, abort writing */
- case 0: /* timeout (will never happen) */
result = CURLE_SEND_ERROR;
break;
+ case 0: /* timeout */
+ result = CURLE_OPERATION_TIMEDOUT;
+ break;
default: /* write! */
bytes_written = 0;
result = Curl_xfer_send(data, outbuf + total_written,