summaryrefslogtreecommitdiff
path: root/pr/src/misc/prnetdb.c
diff options
context:
space:
mode:
Diffstat (limited to 'pr/src/misc/prnetdb.c')
-rw-r--r--pr/src/misc/prnetdb.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/pr/src/misc/prnetdb.c b/pr/src/misc/prnetdb.c
index f31374b3..6c538582 100644
--- a/pr/src/misc/prnetdb.c
+++ b/pr/src/misc/prnetdb.c
@@ -863,7 +863,7 @@ PR_IMPLEMENT(PRStatus) PR_GetProtoByNumber(
}
-PR_IMPLEMENT(PRUintn) PR_NetAddrSize(const PRNetAddr* addr)
+PRUintn _PR_NetAddrSize(const PRNetAddr* addr)
{
PRUintn addrsize;
@@ -890,7 +890,7 @@ PR_IMPLEMENT(PRUintn) PR_NetAddrSize(const PRNetAddr* addr)
else addrsize = 0;
return addrsize;
-} /* PR_NetAddrSize */
+} /* _PR_NetAddrSize */
PR_IMPLEMENT(PRIntn) PR_EnumerateHostEnt(
PRIntn enumIndex, const PRHostEnt *hostEnt, PRUint16 port, PRNetAddr *address)
@@ -924,6 +924,7 @@ PR_IMPLEMENT(PRStatus) PR_InitializeNetAddr(
PRStatus rv = PR_SUCCESS;
if (!_pr_initialized) _PR_ImplicitInitialization();
+ if (val != PR_IpAddrNull) memset(addr, 0, sizeof(addr->inet));
addr->inet.family = AF_INET;
addr->inet.port = htons(port);
switch (val)
@@ -949,9 +950,10 @@ PR_IMPLEMENT(PRStatus) PR_SetNetAddr(
PRStatus rv = PR_SUCCESS;
if (!_pr_initialized) _PR_ImplicitInitialization();
- addr->raw.family = af;
if (af == PR_AF_INET6)
{
+ if (val != PR_IpAddrNull) memset(addr, 0, sizeof(addr->ipv6));
+ addr->ipv6.family = af;
addr->ipv6.port = htons(port);
addr->ipv6.flowinfo = 0;
addr->ipv6.scope_id = 0;
@@ -972,6 +974,8 @@ PR_IMPLEMENT(PRStatus) PR_SetNetAddr(
}
else
{
+ if (val != PR_IpAddrNull) memset(addr, 0, sizeof(addr->inet));
+ addr->inet.family = af;
addr->inet.port = htons(port);
switch (val)
{