summaryrefslogtreecommitdiff
path: root/node
diff options
context:
space:
mode:
Diffstat (limited to 'node')
-rw-r--r--node/Network.cpp1
-rw-r--r--node/NetworkConfig.hpp2
-rw-r--r--node/Node.cpp22
-rw-r--r--node/Node.hpp3
-rw-r--r--node/Switch.cpp27
5 files changed, 6 insertions, 49 deletions
diff --git a/node/Network.cpp b/node/Network.cpp
index 8b0f2055..ec1bcb33 100644
--- a/node/Network.cpp
+++ b/node/Network.cpp
@@ -1102,7 +1102,6 @@ void Network::requestConfiguration()
rmd.add(ZT_NETWORKCONFIG_REQUEST_METADATA_KEY_MAX_NETWORK_TAGS,(uint64_t)ZT_MAX_NETWORK_TAGS);
rmd.add(ZT_NETWORKCONFIG_REQUEST_METADATA_KEY_FLAGS,(uint64_t)0);
rmd.add(ZT_NETWORKCONFIG_REQUEST_METADATA_KEY_RULES_ENGINE_REV,(uint64_t)ZT_RULES_ENGINE_REVISION);
- rmd.add(ZT_NETWORKCONFIG_REQUEST_METADATA_KEY_NODE_RELAY_POLICY,(uint64_t)RR->node->relayPolicy());
if (ctrl == RR->identity.address()) {
if (RR->localNetworkController) {
diff --git a/node/NetworkConfig.hpp b/node/NetworkConfig.hpp
index a548e866..39087395 100644
--- a/node/NetworkConfig.hpp
+++ b/node/NetworkConfig.hpp
@@ -135,8 +135,6 @@ namespace ZeroTier {
#define ZT_NETWORKCONFIG_REQUEST_METADATA_KEY_AUTH "a"
// Network configuration meta-data flags
#define ZT_NETWORKCONFIG_REQUEST_METADATA_KEY_FLAGS "f"
-// Relay policy for this node
-#define ZT_NETWORKCONFIG_REQUEST_METADATA_KEY_NODE_RELAY_POLICY "rp"
// These dictionary keys are short so they don't take up much room.
// By convention we use upper case for binary blobs, but it doesn't really matter.
diff --git a/node/Node.cpp b/node/Node.cpp
index df22e3f2..23271cca 100644
--- a/node/Node.cpp
+++ b/node/Node.cpp
@@ -53,8 +53,7 @@ Node::Node(void *uptr,const struct ZT_Node_Callbacks *callbacks,uint64_t now) :
_prngStreamPtr(0),
_now(now),
_lastPingCheck(0),
- _lastHousekeepingRun(0),
- _relayPolicy(ZT_RELAY_POLICY_TRUSTED)
+ _lastHousekeepingRun(0)
{
if (callbacks->version != 0)
throw std::runtime_error("callbacks struct version mismatch");
@@ -102,9 +101,6 @@ Node::Node(void *uptr,const struct ZT_Node_Callbacks *callbacks,uint64_t now) :
throw;
}
- if (RR->topology->amRoot())
- _relayPolicy = ZT_RELAY_POLICY_ALWAYS;
-
postEvent(ZT_EVENT_UP);
}
@@ -282,12 +278,6 @@ ZT_ResultCode Node::processBackgroundTasks(uint64_t now,volatile uint64_t *nextB
return ZT_RESULT_OK;
}
-ZT_ResultCode Node::setRelayPolicy(enum ZT_RelayPolicy rp)
-{
- _relayPolicy = rp;
- return ZT_RESULT_OK;
-}
-
ZT_ResultCode Node::join(uint64_t nwid,void *uptr)
{
Mutex::Lock _l(_networks_m);
@@ -345,7 +335,6 @@ void Node::status(ZT_NodeStatus *status) const
status->worldTimestamp = RR->topology->planetWorldTimestamp();
status->publicIdentity = RR->publicIdentityStr.c_str();
status->secretIdentity = RR->secretIdentityStr.c_str();
- status->relayPolicy = _relayPolicy;
status->online = _online ? 1 : 0;
}
@@ -860,15 +849,6 @@ enum ZT_ResultCode ZT_Node_processBackgroundTasks(ZT_Node *node,uint64_t now,vol
}
}
-enum ZT_ResultCode ZT_Node_setRelayPolicy(ZT_Node *node,enum ZT_RelayPolicy rp)
-{
- try {
- return reinterpret_cast<ZeroTier::Node *>(node)->setRelayPolicy(rp);
- } catch ( ... ) {
- return ZT_RESULT_FATAL_ERROR_INTERNAL;
- }
-}
-
enum ZT_ResultCode ZT_Node_join(ZT_Node *node,uint64_t nwid,void *uptr)
{
try {
diff --git a/node/Node.hpp b/node/Node.hpp
index 4c070014..662abcb4 100644
--- a/node/Node.hpp
+++ b/node/Node.hpp
@@ -91,7 +91,6 @@ public:
unsigned int frameLength,
volatile uint64_t *nextBackgroundTaskDeadline);
ZT_ResultCode processBackgroundTasks(uint64_t now,volatile uint64_t *nextBackgroundTaskDeadline);
- ZT_ResultCode setRelayPolicy(enum ZT_RelayPolicy rp);
ZT_ResultCode join(uint64_t nwid,void *uptr);
ZT_ResultCode leave(uint64_t nwid,void **uptr);
ZT_ResultCode multicastSubscribe(uint64_t nwid,uint64_t multicastGroup,unsigned long multicastAdi);
@@ -197,7 +196,6 @@ public:
inline int configureVirtualNetworkPort(uint64_t nwid,void **nuptr,ZT_VirtualNetworkConfigOperation op,const ZT_VirtualNetworkConfig *nc) { return _cb.virtualNetworkConfigFunction(reinterpret_cast<ZT_Node *>(this),_uPtr,nwid,nuptr,op,nc); }
inline bool online() const throw() { return _online; }
- inline ZT_RelayPolicy relayPolicy() const { return _relayPolicy; }
#ifdef ZT_TRACE
void postTrace(const char *module,unsigned int line,const char *fmt,...);
@@ -298,7 +296,6 @@ private:
uint64_t _now;
uint64_t _lastPingCheck;
uint64_t _lastHousekeepingRun;
- ZT_RelayPolicy _relayPolicy;
bool _online;
};
diff --git a/node/Switch.cpp b/node/Switch.cpp
index 04624f03..f935b7aa 100644
--- a/node/Switch.cpp
+++ b/node/Switch.cpp
@@ -105,17 +105,8 @@ void Switch::onRemotePacket(const InetAddress &localAddr,const InetAddress &from
const Address destination(fragment.destination());
if (destination != RR->identity.address()) {
- switch(RR->node->relayPolicy()) {
- case ZT_RELAY_POLICY_ALWAYS:
- break;
- case ZT_RELAY_POLICY_TRUSTED:
- if (!path->trustEstablished(now))
- return;
- break;
- // case ZT_RELAY_POLICY_NEVER:
- default:
- return;
- }
+ if ( (!RR->topology->amRoot()) && (!path->trustEstablished(now)) )
+ return;
if (fragment.hops() < ZT_RELAY_MAX_HOPS) {
fragment.incrementHops();
@@ -213,18 +204,10 @@ void Switch::onRemotePacket(const InetAddress &localAddr,const InetAddress &from
//TRACE("<< %.16llx %s -> %s (size: %u)",(unsigned long long)packet->packetId(),source.toString().c_str(),destination.toString().c_str(),packet->size());
+
if (destination != RR->identity.address()) {
- switch(RR->node->relayPolicy()) {
- case ZT_RELAY_POLICY_ALWAYS:
- break;
- case ZT_RELAY_POLICY_TRUSTED:
- if (!path->trustEstablished(now))
- return;
- break;
- // case ZT_RELAY_POLICY_NEVER:
- default:
- return;
- }
+ if ( (!RR->topology->amRoot()) && (!path->trustEstablished(now)) )
+ return;
Packet packet(data,len);