diff options
Diffstat (limited to 'osdep/ManagedRoute.cpp')
-rw-r--r-- | osdep/ManagedRoute.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/osdep/ManagedRoute.cpp b/osdep/ManagedRoute.cpp index b87506c0..264866fc 100644 --- a/osdep/ManagedRoute.cpp +++ b/osdep/ManagedRoute.cpp @@ -56,6 +56,8 @@ #define ZT_LINUX_IP_COMMAND "/sbin/ip" #define ZT_LINUX_IP_COMMAND_2 "/usr/sbin/ip" +// NOTE: BSD is mostly tested on Apple/Mac but is likely to work on other BSD too + namespace ZeroTier { namespace { @@ -412,7 +414,7 @@ bool ManagedRoute::sync() // Shadow system route if it exists, also delete any obsolete shadows // and replace them with the new state. sync() is called periodically to // allow us to do that if underlying connectivity changes. - if ((_systemVia != newSystemVia)||(!strcmp(_systemDevice,newSystemDevice))) { + if ( ((_systemVia != newSystemVia)||(strcmp(_systemDevice,newSystemDevice))) && (strcmp(_device,newSystemDevice)) ) { if ((_systemVia)&&(_systemDevice[0])) { _routeCmd("delete",leftt,_systemVia,_systemDevice,(const char *)0); _routeCmd("delete",rightt,_systemVia,_systemDevice,(const char *)0); |