summaryrefslogtreecommitdiff
path: root/node/Network.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'node/Network.cpp')
-rw-r--r--node/Network.cpp18
1 files changed, 7 insertions, 11 deletions
diff --git a/node/Network.cpp b/node/Network.cpp
index a4384dfd..8e9aecbd 100644
--- a/node/Network.cpp
+++ b/node/Network.cpp
@@ -256,20 +256,16 @@ void Network::requestConfiguration()
TRACE("requesting netconf for network %.16llx from controller %s",(unsigned long long)_id,controller().toString().c_str());
- // TODO: in the future we will include things like join tokens here, etc.
- Dictionary metaData;
- metaData.setHex(ZT_NETWORKCONFIG_REQUEST_METADATA_KEY_NODE_MAJOR_VERSION,ZEROTIER_ONE_VERSION_MAJOR);
- metaData.setHex(ZT_NETWORKCONFIG_REQUEST_METADATA_KEY_NODE_MINOR_VERSION,ZEROTIER_ONE_VERSION_MINOR);
- metaData.setHex(ZT_NETWORKCONFIG_REQUEST_METADATA_KEY_NODE_REVISION,ZEROTIER_ONE_VERSION_REVISION);
- std::string mds(metaData.toString());
+ NetworkConfigRequestMetaData metaData;
+ metaData.initWithDefaults();
+ Buffer<4096> mds;
+ metaData.serialize(mds); // this always includes legacy fields to support old controllers
Packet outp(controller(),RR->identity.address(),Packet::VERB_NETWORK_CONFIG_REQUEST);
outp.append((uint64_t)_id);
- outp.append((uint16_t)mds.length());
- outp.append((const void *)mds.data(),(unsigned int)mds.length());
- if (_config)
- outp.append((uint64_t)_config.revision);
- else outp.append((uint64_t)0);
+ outp.append((uint16_t)mds.size());
+ outp.append(mds.data(),mds.size());
+ outp.append((_config) ? (uint64_t)_config.revision : (uint64_t)0);
RR->sw->send(outp,true,0);
}