diff options
| author | Grant Limberg <grant.limberg@zerotier.com> | 2018-06-04 12:24:58 -0700 |
|---|---|---|
| committer | Grant Limberg <grant.limberg@zerotier.com> | 2018-06-04 12:24:58 -0700 |
| commit | b9975845fffc087c138df4934831f9ef40e61ad6 (patch) | |
| tree | 40af34a6383d3a8d91797c8964f7ce041b2b4f52 /osdep/ManagedRoute.hpp | |
| parent | 91a22a686a17f8cedc58690592a84f5d4a3ab5e0 (diff) | |
| parent | b22405b64b0b26fa1d5d8932cf212e4ae7760632 (diff) | |
| download | infinitytier-b9975845fffc087c138df4934831f9ef40e61ad6.tar.gz infinitytier-b9975845fffc087c138df4934831f9ef40e61ad6.zip | |
Merge branch 'rtnetlink' into edge
Diffstat (limited to 'osdep/ManagedRoute.hpp')
| -rw-r--r-- | osdep/ManagedRoute.hpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/osdep/ManagedRoute.hpp b/osdep/ManagedRoute.hpp index 779ad6a1..301c54a8 100644 --- a/osdep/ManagedRoute.hpp +++ b/osdep/ManagedRoute.hpp @@ -49,14 +49,20 @@ class ManagedRoute friend class SharedPtr<ManagedRoute>; public: - ManagedRoute(const InetAddress &target,const InetAddress &via,const char *device) + ManagedRoute(const InetAddress &target,const InetAddress &via,const InetAddress &src,const char *device) { _target = target; _via = via; + _src = src; if (via.ss_family == AF_INET) _via.setPort(32); else if (via.ss_family == AF_INET6) _via.setPort(128); + if (src.ss_family == AF_INET) { + _src.setPort(32); + } else if (src.ss_family == AF_INET6) { + _src.setPort(128); + } Utils::scopy(_device,sizeof(_device),device); _systemDevice[0] = (char)0; } @@ -87,6 +93,7 @@ public: inline const InetAddress &target() const { return _target; } inline const InetAddress &via() const { return _via; } + inline const InetAddress &src() const { return _src; } inline const char *device() const { return _device; } private: @@ -95,6 +102,7 @@ private: InetAddress _target; InetAddress _via; + InetAddress _src; InetAddress _systemVia; // for route overrides std::map<InetAddress,bool> _applied; // routes currently applied char _device[128]; |
