diff --git a/include/ZeroTierOne.h b/include/ZeroTierOne.h index 207edce7a..dbd62fad4 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 06b6b6115..998d859f7 100644 --- a/node/NetworkConfig.hpp +++ b/node/NetworkConfig.hpp @@ -376,6 +376,8 @@ public: for(unsigned int i=0;i(&(routes[i].target))->serialize(b); reinterpret_cast(&(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(&(routes[i].target))->deserialize(b,p); p += reinterpret_cast(&(routes[i].via))->deserialize(b,p); + routes[i].flags = b.template at(p); p += 2; + routes[i].metric = b.template at(p); p += 2; } staticIpCount = (unsigned int)b.template at(p); p += 2;