зеркало из https://github.com/mozilla/gecko-dev.git
Bug 924395 - Convert netmask for "ignore hosts" IPv6 address conversion in Gnome proxy settings. r=karlt
This commit is contained in:
Родитель
93f44b676a
Коммит
07ab5213d1
|
@ -313,7 +313,7 @@ proxy_MaskIPv6Addr(PRIPv6Addr &addr, uint16_t mask_len)
|
|||
}
|
||||
|
||||
static bool ConvertToIPV6Addr(const nsACString& aName,
|
||||
PRIPv6Addr* aAddr)
|
||||
PRIPv6Addr* aAddr, int32_t* aMask)
|
||||
{
|
||||
PRNetAddr addr;
|
||||
// try to convert hostname to IP
|
||||
|
@ -324,6 +324,12 @@ static bool ConvertToIPV6Addr(const nsACString& aName,
|
|||
if (addr.raw.family == PR_AF_INET) {
|
||||
// convert to IPv4-mapped address
|
||||
PR_ConvertIPv4AddrToIPv6(addr.inet.ip, aAddr);
|
||||
if (aMask) {
|
||||
if (*aMask <= 32)
|
||||
*aMask += 96;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
} else if (addr.raw.family == PR_AF_INET6) {
|
||||
// copy the address
|
||||
memcpy(aAddr, &addr.ipv6.ip, sizeof(PRIPv6Addr));
|
||||
|
@ -368,8 +374,8 @@ static bool HostIgnoredByProxy(const nsACString& aIgnore,
|
|||
|
||||
nsDependentCSubstring ignoreStripped(start, slash);
|
||||
PRIPv6Addr ignoreAddr, hostAddr;
|
||||
if (!ConvertToIPV6Addr(ignoreStripped, &ignoreAddr) ||
|
||||
!ConvertToIPV6Addr(aHost, &hostAddr))
|
||||
if (!ConvertToIPV6Addr(ignoreStripped, &ignoreAddr, &mask) ||
|
||||
!ConvertToIPV6Addr(aHost, &hostAddr, NULL))
|
||||
return false;
|
||||
|
||||
proxy_MaskIPv6Addr(ignoreAddr, mask);
|
||||
|
|
Загрузка…
Ссылка в новой задаче