diff --git a/lib/libfetch/common.c b/lib/libfetch/common.c index 2e1364edff0..a9935ef176d 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) {