diff options
author | Adam Ierymenko <adam.ierymenko@zerotier.com> | 2015-05-19 18:40:34 -0700 |
---|---|---|
committer | Adam Ierymenko <adam.ierymenko@zerotier.com> | 2015-05-19 18:40:34 -0700 |
commit | dd701886437d654482ab454b220d41de1dbff012 (patch) | |
tree | 95615eaabc0185e9dc4ead5ee8832354a1a5b244 /osdep | |
parent | c7eb5f0c81d32f26d0cca47f80d9d9d5e1307aca (diff) | |
download | infinitytier-dd701886437d654482ab454b220d41de1dbff012.tar.gz infinitytier-dd701886437d654482ab454b220d41de1dbff012.zip |
Make tap driver even more defensive... seems to maybe fix the new network problem. Have to test a bit more.
Diffstat (limited to 'osdep')
-rw-r--r-- | osdep/WindowsEthernetTap.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/osdep/WindowsEthernetTap.cpp b/osdep/WindowsEthernetTap.cpp index 1cea0d96..77e7dc9c 100644 --- a/osdep/WindowsEthernetTap.cpp +++ b/osdep/WindowsEthernetTap.cpp @@ -578,11 +578,6 @@ void WindowsEthernetTap::threadMain() HANDLE wait4[3]; char *tapReadBuf = (char *)0; - if (!_enableTapDevice()) { - _enabled = false; - return; // only happens if devcon is missing or totally fails - } - /* No idea why I did this. I did it a long time ago and there was only a * a snarky comment. But I'd never do crap like this without a reason, so * I am leaving it alone with a more descriptive snarky comment. */ @@ -596,6 +591,9 @@ void WindowsEthernetTap::threadMain() int prevTapResetStatus = _systemTapResetStatus; bool throwOneAway = true; // "Power cycle" the network port once on startup, because Windows... while (_run) { + _disableTapDevice(); + Sleep(500); + _enableTapDevice(); Sleep(500); _tap = CreateFileA(tapPath,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_SYSTEM|FILE_FLAG_OVERLAPPED,NULL); |