From 548730660be094ddbbd5d7c918e6c5d16b6233b8 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Wed, 11 May 2016 10:19:14 -0700 Subject: Ready to test whole new netconf refactor. --- node/IncomingPacket.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'node/IncomingPacket.cpp') diff --git a/node/IncomingPacket.cpp b/node/IncomingPacket.cpp index 2abd8840..84df7de3 100644 --- a/node/IncomingPacket.cpp +++ b/node/IncomingPacket.cpp @@ -681,12 +681,18 @@ bool IncomingPacket::_doNETWORK_CONFIG_REQUEST(const RuntimeEnvironment *RR,cons const unsigned int metaDataLength = at(ZT_PROTO_VERB_NETWORK_CONFIG_REQUEST_IDX_DICT_LEN); const uint8_t *metaDataBytes = (const uint8_t *)field(ZT_PROTO_VERB_NETWORK_CONFIG_REQUEST_IDX_DICT,metaDataLength); - NetworkConfigRequestMetaData metaData(false); - try { - Buffer<8194> md(metaDataBytes,metaDataLength); - metaData.deserialize(md,0); - } catch ( ... ) { // will throw if new-style meta-data is missing or invalid - metaData.clear(); + NetworkConfigRequestMetaData metaData; + bool haveNewStyleMetaData = false; + for(unsigned int i=0;i md(metaDataBytes,metaDataLength); + metaData.deserialize(md,0); // the meta-data deserializer automatically skips old-style meta-data + } else { #ifdef ZT_SUPPORT_OLD_STYLE_NETCONF const Dictionary oldStyleMetaData((const char *)metaDataBytes,metaDataLength); metaData.majorVersion = (unsigned int)oldStyleMetaData.getHexUInt(ZT_NETWORKCONFIG_REQUEST_METADATA_KEY_NODE_MAJOR_VERSION,0); -- cgit v1.2.3