Preserve add local interface address add order and send in that order since this is a priority.

This commit is contained in:
Adam Ierymenko 2016-04-06 11:50:00 -07:00
parent 504738b183
commit 8ef78e7e7d

View file

@ -493,10 +493,10 @@ int Node::addLocalInterfaceAddress(const struct sockaddr_storage *addr)
{ {
if (Path::isAddressValidForPath(*(reinterpret_cast<const InetAddress *>(addr)))) { if (Path::isAddressValidForPath(*(reinterpret_cast<const InetAddress *>(addr)))) {
Mutex::Lock _l(_directPaths_m); Mutex::Lock _l(_directPaths_m);
_directPaths.push_back(*(reinterpret_cast<const InetAddress *>(addr))); if (std::find(_directPaths.begin(),_directPaths.end(),*(reinterpret_cast<const InetAddress *>(addr))) == _directPaths.end()) {
std::sort(_directPaths.begin(),_directPaths.end()); _directPaths.push_back(*(reinterpret_cast<const InetAddress *>(addr)));
_directPaths.erase(std::unique(_directPaths.begin(),_directPaths.end()),_directPaths.end()); return 1;
return 1; }
} }
return 0; return 0;
} }