DWORD len;
OVERLAPPED overlapped;
vpn_packet_t packet;
+ int errors;
logger(LOG_DEBUG, "Tap reader running");
} else {
logger(LOG_ERR, "Error while reading from %s %s: %s", device_info,
device, strerror(errno));
- return -1;
+ errors++;
+ if(errors >= 10) {
+ EnterCriticalSection(&mutex);
+ running = false;
+ LeaveCriticalSection(&mutex);
+ }
+ usleep(1000000);
+ continue;
}
}
- EnterCriticalSection(&mutex);
+ errors = 0;
packet.len = len;
packet.priority = 0;
+
+ EnterCriticalSection(&mutex);
route(myself, &packet);
LeaveCriticalSection(&mutex);
}