Browse Source

Add flags and metric to ZT-managed routes.

Adam Ierymenko 9 years ago
parent
commit
82635ce606
2 changed files with 14 additions and 0 deletions
  1. 10 0
      include/ZeroTierOne.h
  2. 4 0
      node/NetworkConfig.hpp

+ 10 - 0
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;
 
 /**

+ 4 - 0
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;