The branch main has been updated by eugen:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=8f8a7f6fffd7dca09013f7c4bfa075bc3825fb8e

commit 8f8a7f6fffd7dca09013f7c4bfa075bc3825fb8e
Author:     Eugene Grosbein <[email protected]>
AuthorDate: 2026-01-22 08:40:35 +0000
Commit:     Eugene Grosbein <[email protected]>
CommitDate: 2026-01-22 08:40:35 +0000

    libfetch: apply timeout to SSL_read()
    
    Currently, fetchTimeout works for non-SSL connections only, so does fetch 
-T.
    Fix it applying specified timeout to SSL_read().
    
    MFC after:      3 days
---
 lib/libfetch/common.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/lib/libfetch/common.c b/lib/libfetch/common.c
index 2e1364edff04..a9935ef176da 100644
--- a/lib/libfetch/common.c
+++ b/lib/libfetch/common.c
@@ -1265,6 +1265,14 @@ fetch_ssl_read(SSL *ssl, char *buf, size_t len)
 {
        ssize_t rlen;
        int ssl_err;
+       struct timeval tv;
+
+       if (fetchTimeout > 0) {
+               tv.tv_sec = fetchTimeout;
+               tv.tv_usec = 0;
+               setsockopt(SSL_get_fd(ssl), SOL_SOCKET, SO_RCVTIMEO,
+                       &tv, sizeof(tv));
+       }
 
        rlen = SSL_read(ssl, buf, len);
        if (rlen < 0) {

Reply via email to