зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1296464 - Part 1 - Add init2 method to nsIUDPSocket to allow opening sockets on specific IPs. r=hurley
This commit is contained in:
Родитель
200e76f295
Коммит
e40b66af93
|
@ -57,6 +57,11 @@ interface nsIUDPSocket : nsISupports
|
||||||
in nsIPrincipal aPrincipal,
|
in nsIPrincipal aPrincipal,
|
||||||
[optional] in boolean aAddressReuse);
|
[optional] in boolean aAddressReuse);
|
||||||
|
|
||||||
|
[optional_argc] void init2(in AUTF8String aAddr,
|
||||||
|
in long aPort,
|
||||||
|
in nsIPrincipal aPrincipal,
|
||||||
|
[optional] in boolean aAddressReuse);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* initWithAddress
|
* initWithAddress
|
||||||
*
|
*
|
||||||
|
|
|
@ -572,6 +572,31 @@ nsUDPSocket::Init(int32_t aPort, bool aLoopbackOnly, nsIPrincipal *aPrincipal,
|
||||||
return InitWithAddress(&addr, aPrincipal, aAddressReuse, aOptionalArgc);
|
return InitWithAddress(&addr, aPrincipal, aAddressReuse, aOptionalArgc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NS_IMETHODIMP
|
||||||
|
nsUDPSocket::Init2(const nsACString& aAddr, int32_t aPort, nsIPrincipal *aPrincipal,
|
||||||
|
bool aAddressReuse, uint8_t aOptionalArgc)
|
||||||
|
{
|
||||||
|
if (NS_WARN_IF(aAddr.IsEmpty())) {
|
||||||
|
return NS_ERROR_INVALID_ARG;
|
||||||
|
}
|
||||||
|
|
||||||
|
PRNetAddr prAddr;
|
||||||
|
if (PR_StringToNetAddr(aAddr.BeginReading(), &prAddr) != PR_SUCCESS) {
|
||||||
|
return NS_ERROR_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
NetAddr addr;
|
||||||
|
|
||||||
|
if (aPort < 0)
|
||||||
|
aPort = 0;
|
||||||
|
|
||||||
|
addr.raw.family = AF_INET;
|
||||||
|
addr.inet.port = htons(aPort);
|
||||||
|
addr.inet.ip = prAddr.inet.ip;
|
||||||
|
|
||||||
|
return InitWithAddress(&addr, aPrincipal, aAddressReuse, aOptionalArgc);
|
||||||
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
nsUDPSocket::InitWithAddress(const NetAddr *aAddr, nsIPrincipal *aPrincipal,
|
nsUDPSocket::InitWithAddress(const NetAddr *aAddr, nsIPrincipal *aPrincipal,
|
||||||
bool aAddressReuse, uint8_t aOptionalArgc)
|
bool aAddressReuse, uint8_t aOptionalArgc)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче