mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-02-06 11:10:13 +00:00
Fix a bug that we visually found in Windows code -- it was not advertising uPnP addresses?!?
This commit is contained in:
parent
1023ef23b7
commit
ab19e19f00
@ -1334,8 +1334,10 @@ void ZT_Node_freeQueryResult(ZT_Node *node,void *qr);
|
|||||||
/**
|
/**
|
||||||
* Add a local interface address
|
* Add a local interface address
|
||||||
*
|
*
|
||||||
* Take care that these are never ZeroTier interface addresses, otherwise
|
* It is the responsibility of the caller to take care that these are never
|
||||||
* strange things might happen or they simply won't work.
|
* ZeroTier interface addresses, whether these are assigned by ZeroTier or
|
||||||
|
* are otherwise assigned to an interface managed by this ZeroTier instance.
|
||||||
|
* This can cause recursion or other undesirable behavior.
|
||||||
*
|
*
|
||||||
* Addresses can also be added here if they are the result of a UPnP or
|
* Addresses can also be added here if they are the result of a UPnP or
|
||||||
* NAT-PMP port mapping or other discovery or mapping means.
|
* NAT-PMP port mapping or other discovery or mapping means.
|
||||||
|
@ -811,6 +811,14 @@ public:
|
|||||||
ztDevices.push_back(t->second->luid());
|
ztDevices.push_back(t->second->luid());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_node->clearLocalInterfaceAddresses();
|
||||||
|
|
||||||
|
#ifdef ZT_USE_MINIUPNPC
|
||||||
|
std::vector<InetAddress> mappedAddresses(_portMapper->get());
|
||||||
|
for(std::vector<InetAddress>::const_iterator ext(mappedAddresses.begin());ext!=mappedAddresses.end();++ext)
|
||||||
|
_node->addLocalInterfaceAddress(reinterpret_cast<const struct sockaddr_storage *>(&(*ext)));
|
||||||
|
#endif
|
||||||
|
|
||||||
char aabuf[16384];
|
char aabuf[16384];
|
||||||
ULONG aalen = sizeof(aabuf);
|
ULONG aalen = sizeof(aabuf);
|
||||||
if (GetAdaptersAddresses(AF_UNSPEC,GAA_FLAG_SKIP_ANYCAST|GAA_FLAG_SKIP_MULTICAST|GAA_FLAG_SKIP_DNS_SERVER,(void *)0,reinterpret_cast<PIP_ADAPTER_ADDRESSES>(aabuf),&aalen) == NO_ERROR) {
|
if (GetAdaptersAddresses(AF_UNSPEC,GAA_FLAG_SKIP_ANYCAST|GAA_FLAG_SKIP_MULTICAST|GAA_FLAG_SKIP_DNS_SERVER,(void *)0,reinterpret_cast<PIP_ADAPTER_ADDRESSES>(aabuf),&aalen) == NO_ERROR) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user