Add flags and metric to ZT-managed routes.

This commit is contained in:
Adam Ierymenko 2016-06-09 09:43:09 -07:00
parent 8c7433a525
commit 82635ce606
2 changed files with 14 additions and 0 deletions

View File

@ -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;
/**

View File

@ -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;