Fix for the event loop on Windows.
[tinc] / src / event.c
index 1283edd..1ca15d2 100644 (file)
@@ -435,12 +435,12 @@ bool event_loop(void) {
                                break;
                        }
 
-                       if(result >= event_count - event_offset) {
-                               return(false);
+                       if(result < WSA_WAIT_EVENT_0 || result >= WSA_WAIT_EVENT_0 + event_count - event_offset) {
+                               return false;
                        }
 
                        /* Look up io in the map by index. */
-                       event_index = result - event_offset;
+                       event_index = result - WSA_WAIT_EVENT_0 + event_offset;
                        io_t *io = io_map[event_index];
 
                        if(io->fd == -1) {