summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/ZeroTierOne.h10
-rw-r--r--node/NetworkConfig.hpp4
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;