From 5ea7ef6b659abc4e3002e24b456b71a1974893ce Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Fri, 13 Nov 2020 22:06:58 -0500 Subject: [PATCH] Rework Linux route setting to actually consult netlink interface. --- osdep/ManagedRoute.cpp | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/osdep/ManagedRoute.cpp b/osdep/ManagedRoute.cpp index d64f4279e..d0a892617 100644 --- a/osdep/ManagedRoute.cpp +++ b/osdep/ManagedRoute.cpp @@ -518,17 +518,14 @@ bool ManagedRoute::sync() #ifdef __LINUX__ // ---------------------------------------------------------- - if (!_applied.count(leftt)) { + const char *const devptr = (_via) ? (const char *)0 : _device; + if (!LinuxNetLink::getInstance().routeIsSet(leftt,_via,_src,devptr)) { _applied[leftt] = false; // boolean unused - //LinuxNetLink::getInstance().delRoute(leftt, _via, _src, (_via) ? (const char *)0 : _device); - LinuxNetLink::getInstance().addRoute(leftt, _via, _src, (_via) ? (const char *)0 : _device); - //_routeCmd("replace",leftt,_via,(_via) ? (const char *)0 : _device); + LinuxNetLink::getInstance().addRoute(leftt, _via, _src, devptr); } - if ((rightt)&&(!_applied.count(rightt))) { + if ((rightt)&&(!LinuxNetLink::getInstance().routeIsSet(rightt,_via,_src,devptr))) { _applied[rightt] = false; // boolean unused - //LinuxNetLink::getInstance().delRoute(rightt, _via, _src, (_via) ? (const char *)0 : _device); - LinuxNetLink::getInstance().addRoute(rightt, _via, _src, (_via) ? (const char *)0 : _device); - //_routeCmd("replace",rightt,_via,(_via) ? (const char *)0 : _device); + LinuxNetLink::getInstance().addRoute(rightt, _via, _src, devptr); } #endif // __LINUX__ ----------------------------------------------------------