RedisNetworkConfigMaster in its own folder. Also fix some hex/decimal Redis database confusion.

This commit is contained in:
Adam Ierymenko 2015-02-24 14:17:57 -08:00
parent 78fc62d967
commit b6fba5934a
4 changed files with 124 additions and 200 deletions

View file

@ -632,7 +632,7 @@ bool IncomingPacket::_doNETWORK_CONFIG_REQUEST(const RuntimeEnvironment *RR,cons
if (RR->netconfMaster) {
Dictionary netconf;
switch(RR->netconfMaster->doNetworkConfigRequest(_remoteAddress,packetId(),source(),nwid,metaData,haveTimestamp,netconf)) {
switch(RR->netconfMaster->doNetworkConfigRequest(_remoteAddress,packetId(),peer->identity(),nwid,metaData,haveTimestamp,netconf)) {
case NetworkConfigMaster::NETCONF_QUERY_OK: {
std::string netconfStr(netconf.toString());
if (netconfStr.length() > 0xffff) { // sanity check since field ix 16-bit
@ -652,6 +652,8 @@ bool IncomingPacket::_doNETWORK_CONFIG_REQUEST(const RuntimeEnvironment *RR,cons
}
}
} break;
case NetworkConfigMaster::NETCONF_QUERY_OK_BUT_NOT_NEWER: // nothing to do -- netconf has not changed
break;
case NetworkConfigMaster::NETCONF_QUERY_OBJECT_NOT_FOUND: {
Packet outp(peer->address(),RR->identity.address(),Packet::VERB_ERROR);
outp.append((unsigned char)Packet::VERB_NETWORK_CONFIG_REQUEST);

View file

@ -34,6 +34,7 @@
#include "InetAddress.hpp"
#include "Dictionary.hpp"
#include "Address.hpp"
#include "Identity.hpp"
namespace ZeroTier {
@ -51,9 +52,10 @@ public:
enum ResultCode
{
NETCONF_QUERY_OK = 0,
NETCONF_QUERY_OBJECT_NOT_FOUND = 1,
NETCONF_QUERY_ACCESS_DENIED = 2,
NETCONF_QUERY_INTERNAL_SERVER_ERROR = 3
NETCONF_QUERY_OK_BUT_NOT_NEWER = 1,
NETCONF_QUERY_OBJECT_NOT_FOUND = 2,
NETCONF_QUERY_ACCESS_DENIED = 3,
NETCONF_QUERY_INTERNAL_SERVER_ERROR = 4
};
NetworkConfigMaster() {}
@ -70,7 +72,7 @@ public:
*
* @param fromAddr Originating IP address
* @param packetId 64-bit packet ID
* @param member Originating peer ZeroTier address
* @param member Originating peer ZeroTier identity
* @param nwid 64-bit network ID
* @param metaData Meta-data bundled with request (empty if none)
* @param haveTimestamp Timestamp sent by requesting peer or 0 if none
@ -80,7 +82,7 @@ public:
virtual NetworkConfigMaster::ResultCode doNetworkConfigRequest(
const InetAddress &fromAddr,
uint64_t packetId,
const Address &member,
const Identity &member,
uint64_t nwid,
const Dictionary &metaData,
uint64_t haveTimestamp,