diff options
-rw-r--r-- | include/ZeroTierOne.h | 10 | ||||
-rw-r--r-- | node/NetworkConfig.hpp | 4 |
2 files changed, 14 insertions, 0 deletions
diff --git a/include/ZeroTierOne.h b/include/ZeroTierOne.h index 207edce7..dbd62fad 100644 --- a/include/ZeroTierOne.h +++ b/include/ZeroTierOne.h @@ -633,6 +633,16 @@ typedef struct * Gateway IP address (port ignored) or NULL (family == 0) for LAN-local (no gateway) */ struct sockaddr_storage via; + + /** + * Route flags + */ + uint16_t flags; + + /** + * Route metric (not currently used) + */ + uint16_t metric; } ZT_VirtualNetworkRoute; /** diff --git a/node/NetworkConfig.hpp b/node/NetworkConfig.hpp index 06b6b611..998d859f 100644 --- a/node/NetworkConfig.hpp +++ b/node/NetworkConfig.hpp @@ -376,6 +376,8 @@ public: for(unsigned int i=0;i<routeCount;++i) { reinterpret_cast<const InetAddress *>(&(routes[i].target))->serialize(b); reinterpret_cast<const InetAddress *>(&(routes[i].via))->serialize(b); + b.append((uint16_t)routes[i].flags); + b.append((uint16_t)routes[i].metric); } b.append((uint16_t)staticIpCount); @@ -510,6 +512,8 @@ public: for(unsigned int i=0;i<routeCount;++i) { p += reinterpret_cast<InetAddress *>(&(routes[i].target))->deserialize(b,p); p += reinterpret_cast<InetAddress *>(&(routes[i].via))->deserialize(b,p); + routes[i].flags = b.template at<uint16_t>(p); p += 2; + routes[i].metric = b.template at<uint16_t>(p); p += 2; } staticIpCount = (unsigned int)b.template at<uint16_t>(p); p += 2; |