avformat/tls_gnutls: fix build error on linux

The fd_set need <sys/select.h> on linux, but it's
not included in os_support.h, it's included in os_support.c

So this patch use poll() to replace select() to avoid
this issue and simplify the code.

Signed-off-by: Jack Lau <jacklau1222gm@gmail.com>
This commit is contained in:
Jack Lau
2026-01-12 20:02:40 +08:00
committed by Timo Rothenpieler
parent 685ceebd42
commit 74bc79e475

View File

@@ -172,19 +172,13 @@ static int gnutls_pull_timeout(gnutls_transport_ptr_t ptr, unsigned int ms)
TLSContext *c = (TLSContext*) ptr;
TLSShared *s = &c->tls_shared;
int ret;
fd_set rfds;
struct timeval tv;
int sockfd = ffurl_get_file_handle(s->udp);
struct pollfd pfd = { .fd = sockfd, .events = POLLIN, .revents = 0 };
if (sockfd < 0)
return 0;
FD_ZERO(&rfds);
FD_SET(sockfd, &rfds);
tv.tv_sec = ms / 1000;
tv.tv_usec = (ms % 1000) * 1000;
ret = select(sockfd + 1, &rfds, NULL, NULL, &tv);
ret = poll(&pfd, 1, ms);
if (ret <= 0)
return ret;
return 1;