diff --git a/node/Topology.cpp b/node/Topology.cpp index 7197dd9b6..21ed78a72 100644 --- a/node/Topology.cpp +++ b/node/Topology.cpp @@ -284,10 +284,9 @@ bool Topology::isUpstream(const Identity &id) const return true; std::vector< SharedPtr > nws(RR->node->allNetworks()); for(std::vector< SharedPtr >::const_iterator nw(nws.begin());nw!=nws.end();++nw) { - SharedPtr nc((*nw)->config2()); - if (nc) { - for(std::vector< std::pair >::const_iterator r(nc->relays().begin());r!=nc->relays().end();++r) { - if (r->first == id.address()) + if ((*nw)->hasConfig()) { + for(unsigned int r=0;r<(*nw)->config().staticDeviceCount();++r) { + if ((((*nw)->config().staticDevice(r).flags & ZT_NETWORK_STATIC_DEVICE_IS_RELAY) != 0)&&((*nw)->config().staticDevice(r).address == id.address().toInt())) return true; } }