From 8b9519f0af8e89ad49e730546abdc2ff94fd2ef8 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Fri, 6 May 2016 16:13:11 -0700 Subject: Simplify a bunch of NetworkConfig stuff by eliminating accessors, also makes network controller easier to refactor. --- controller/SqliteNetworkController.cpp | 17 ++++++++--------- controller/SqliteNetworkController.hpp | 8 ++++---- 2 files changed, 12 insertions(+), 13 deletions(-) (limited to 'controller') diff --git a/controller/SqliteNetworkController.cpp b/controller/SqliteNetworkController.cpp index bef9cfc1..9f237f2a 100644 --- a/controller/SqliteNetworkController.cpp +++ b/controller/SqliteNetworkController.cpp @@ -353,7 +353,7 @@ SqliteNetworkController::~SqliteNetworkController() } } -NetworkController::ResultCode SqliteNetworkController::doNetworkConfigRequest(const InetAddress &fromAddr,const Identity &signingId,const Identity &identity,uint64_t nwid,const Dictionary &metaData,Dictionary &netconf) +NetworkController::ResultCode SqliteNetworkController::doNetworkConfigRequest(const InetAddress &fromAddr,const Identity &signingId,const Identity &identity,uint64_t nwid,const NetworkConfigRequestMetaData &metaData,Buffer<8194> &netconf) { Mutex::Lock _l(_lock); return _doNetworkConfigRequest(fromAddr,signingId,identity,nwid,metaData,netconf); @@ -1647,25 +1647,24 @@ unsigned int SqliteNetworkController::_doCPGet( return 404; } -NetworkController::ResultCode SqliteNetworkController::_doNetworkConfigRequest(const InetAddress &fromAddr,const Identity &signingId,const Identity &identity,uint64_t nwid,const Dictionary &metaData,Dictionary &netconf) +NetworkController::ResultCode SqliteNetworkController::_doNetworkConfigRequest(const InetAddress &fromAddr,const Identity &signingId,const Identity &identity,uint64_t nwid,const NetworkConfigRequestMetaData &metaData,Buffer<8194> &netconf) { // Assumes _lock is locked - // Decode some stuff from metaData - const unsigned int clientMajorVersion = (unsigned int)metaData.getHexUInt(ZT_NETWORKCONFIG_REQUEST_METADATA_KEY_NODE_MAJOR_VERSION,0); - const unsigned int clientMinorVersion = (unsigned int)metaData.getHexUInt(ZT_NETWORKCONFIG_REQUEST_METADATA_KEY_NODE_MINOR_VERSION,0); - const unsigned int clientRevision = (unsigned int)metaData.getHexUInt(ZT_NETWORKCONFIG_REQUEST_METADATA_KEY_NODE_REVISION,0); - const bool clientIs104 = (Utils::compareVersion(clientMajorVersion,clientMinorVersion,clientRevision,1,0,4) >= 0); + const bool clientIs104 = (Utils::compareVersion(metaData.majorVersion,metaData.minorVersion,metaData.revision,1,0,4) >= 0); // Note: we can't reuse prepared statements that return const char * pointers without // making our own copy in e.g. a std::string first. + Dictionary legacy; + NetworkConfig nc; + if ((!signingId)||(!signingId.hasPrivate())) { - netconf["error"] = "signing identity invalid or lacks private key"; + //netconf["error"] = "signing identity invalid or lacks private key"; return NetworkController::NETCONF_QUERY_INTERNAL_SERVER_ERROR; } if (signingId.address().toInt() != (nwid >> 24)) { - netconf["error"] = "signing identity address does not match most significant 40 bits of network ID"; + //netconf["error"] = "signing identity address does not match most significant 40 bits of network ID"; return NetworkController::NETCONF_QUERY_INTERNAL_SERVER_ERROR; } diff --git a/controller/SqliteNetworkController.hpp b/controller/SqliteNetworkController.hpp index 11be9db4..05b46bfa 100644 --- a/controller/SqliteNetworkController.hpp +++ b/controller/SqliteNetworkController.hpp @@ -62,8 +62,8 @@ public: const Identity &signingId, const Identity &identity, uint64_t nwid, - const Dictionary &metaData, - Dictionary &netconf); + const NetworkConfigRequestMetaData &metaData, + Buffer<8194> &netconf); unsigned int handleControlPlaneHttpGET( const std::vector &path, @@ -111,8 +111,8 @@ private: const Identity &signingId, const Identity &identity, uint64_t nwid, - const Dictionary &metaData, - Dictionary &netconf); + const NetworkConfigRequestMetaData &metaData, + Buffer<8194> &netconf); static void _circuitTestCallback(ZT_Node *node,ZT_CircuitTest *test,const ZT_CircuitTestReport *report); -- cgit v1.2.3