1
0
mirror of https://github.com/tonusoo/koduinternet-cpe synced 2024-11-14 07:11:00 +02:00
koduinternet-cpe/patches/igmpproxy.patch
2023-06-15 17:55:10 +03:00

27 lines
1.0 KiB
Diff

--- src/igmpproxy.c~ 2023-05-15 23:19:03.446584147 +0300
+++ src/igmpproxy.c 2023-05-15 23:20:55.125401534 +0300
@@ -263,7 +263,7 @@
int MaxFD, Rt, secs;
fd_set ReadFDS;
socklen_t dummy = 0;
- struct timespec curtime, lasttime, difftime, tv;
+ struct timespec curtime, lasttime, difftime, tv, pselect_timeout;
// The timeout is a pointer in order to set it to NULL if nessecary.
struct timespec *timeout = &tv;
@@ -306,8 +306,13 @@
FD_ZERO( &ReadFDS );
FD_SET( MRouterFD, &ReadFDS );
+ // https://github.com/pali/igmpproxy/issues/95
+ memcpy(&pselect_timeout, timeout, sizeof(struct timespec));
+ pselect_timeout.tv_sec *= 2;
+ my_log(LOG_DEBUG, 0, "Calling pselect() with %ld.%09ld seconds timeout", pselect_timeout.tv_sec, pselect_timeout.tv_nsec);
+
// wait for input
- Rt = pselect( MaxFD +1, &ReadFDS, NULL, NULL, timeout, NULL );
+ Rt = pselect( MaxFD +1, &ReadFDS, NULL, NULL, &pselect_timeout, NULL );
// log and ignore failures
if( Rt < 0 ) {