diff options
| author | Adam Ierymenko <adam.ierymenko@zerotier.com> | 2016-06-21 13:54:03 -0700 |
|---|---|---|
| committer | Adam Ierymenko <adam.ierymenko@zerotier.com> | 2016-06-21 13:54:03 -0700 |
| commit | 4f237687ce4c0b7085733d808829fd4b83cf3483 (patch) | |
| tree | 5b4a799e4ba656d22a06735032550375fd0f3d48 /service | |
| parent | 5b2d2efb45a856968c7298b00b6cbe08feb66054 (diff) | |
| download | infinitytier-4f237687ce4c0b7085733d808829fd4b83cf3483.tar.gz infinitytier-4f237687ce4c0b7085733d808829fd4b83cf3483.zip | |
Route management now works on Windows, including default route override! 1.1.6 very close!
Diffstat (limited to 'service')
| -rw-r--r-- | service/OneService.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/service/OneService.cpp b/service/OneService.cpp index 0825705f..8b27ba49 100644 --- a/service/OneService.cpp +++ b/service/OneService.cpp @@ -1051,7 +1051,12 @@ public: } if (syncRoutes) { - const std::string tapdev(n.tap->deviceName()); + char tapdev[64]; +#ifdef __WINDOWS__ + Utils::snprintf(tapdev,sizeof(tapdev),"%.16llx",(unsigned long long)n.tap->luid().Value); +#else + Utils::scopy(tapdev,sizeof(tapdev),n.tap->deviceName().c_str()); +#endif // Nuke applied routes that are no longer in n.config.routes[] and/or are not allowed for(std::list<ManagedRoute>::iterator mr(n.managedRoutes.begin());mr!=n.managedRoutes.end();) { @@ -1106,7 +1111,7 @@ public: // Add and apply new routes n.managedRoutes.push_back(ManagedRoute()); - if (!n.managedRoutes.back().set(*target,*via,tapdev.c_str())) + if (!n.managedRoutes.back().set(*target,*via,tapdev)) n.managedRoutes.pop_back(); } } |
