diff options
Diffstat (limited to 'node')
-rw-r--r-- | node/IncomingPacket.cpp | 4 | ||||
-rw-r--r-- | node/NetworkConfigMaster.hpp | 12 |
2 files changed, 10 insertions, 6 deletions
diff --git a/node/IncomingPacket.cpp b/node/IncomingPacket.cpp index 7bc8cc9c..21fcac01 100644 --- a/node/IncomingPacket.cpp +++ b/node/IncomingPacket.cpp @@ -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); diff --git a/node/NetworkConfigMaster.hpp b/node/NetworkConfigMaster.hpp index 5e2ab6fc..12a926fa 100644 --- a/node/NetworkConfigMaster.hpp +++ b/node/NetworkConfigMaster.hpp @@ -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, |