diff --git a/core/Locator.cpp b/core/Locator.cpp index 3b05ba504..994b107a4 100644 --- a/core/Locator.cpp +++ b/core/Locator.cpp @@ -35,12 +35,12 @@ bool Locator::add(const Endpoint &ep, const SharedPtr< const EndpointAttributes { for (Vector< std::pair< Endpoint, SharedPtr< const EndpointAttributes > > >::iterator i(m_endpoints.begin());i!=m_endpoints.end();++i) { if (i->first == ep) { - i->second = (a) ? a : EndpointAttributes::DEFAULT; + i->second = ((a) && (a->data[0] != 0)) ? a : EndpointAttributes::DEFAULT; return true; } } if (m_endpoints.size() < ZT_LOCATOR_MAX_ENDPOINTS) { - m_endpoints.push_back(std::pair >(ep, (a) ? a : EndpointAttributes::DEFAULT)); + m_endpoints.push_back(std::pair >(ep, ((a) && (a->data[0] != 0)) ? a : EndpointAttributes::DEFAULT)); return true; } return false;