diff options
author | wtc%netscape.com <devnull@localhost> | 1999-10-20 23:07:38 +0000 |
---|---|---|
committer | wtc%netscape.com <devnull@localhost> | 1999-10-20 23:07:38 +0000 |
commit | 1ec4172bb83037e8e950c14cdfbf1c4370268652 (patch) | |
tree | 4074c38c4871bc205222f43be007c2c2bcfc1aa7 | |
parent | ef24afbe1e967500baec18d973412437daf3a38b (diff) | |
download | nspr-hg-1ec4172bb83037e8e950c14cdfbf1c4370268652.tar.gz |
Bugsplat bug #366840: PR_StringToNetAddr needs to set the address family
field of the PRNetAddr structure. Added a new test str2addr.c for this
bug. r=larryh@netscape.com
Modified files: prnetdb.c, pr/tests/runtests.ksh, pr/tests/Makefile,
pr/tests/Makefile.in
Added file: pr/tests/str2addr.c
-rw-r--r-- | pr/src/misc/prnetdb.c | 1 | ||||
-rw-r--r-- | pr/tests/Makefile | 1 | ||||
-rw-r--r-- | pr/tests/Makefile.in | 1 | ||||
-rwxr-xr-x | pr/tests/runtests.ksh | 1 | ||||
-rw-r--r-- | pr/tests/str2addr.c | 63 |
5 files changed, 67 insertions, 0 deletions
diff --git a/pr/src/misc/prnetdb.c b/pr/src/misc/prnetdb.c index de869246..283cfd89 100644 --- a/pr/src/misc/prnetdb.c +++ b/pr/src/misc/prnetdb.c @@ -1013,6 +1013,7 @@ PR_IMPLEMENT(PRStatus) PR_StringToNetAddr(const char *string, PRNetAddr *addr) } } #else /* _PR_INET6 */ + addr->inet.family = AF_INET; #ifdef XP_OS2_VACPP addr->inet.ip = inet_addr((char *)string); #else diff --git a/pr/tests/Makefile b/pr/tests/Makefile index ff0c2475..bfa9c112 100644 --- a/pr/tests/Makefile +++ b/pr/tests/Makefile @@ -140,6 +140,7 @@ CSRCS = \ sproc_p.c \ stack.c \ stdio.c \ + str2addr.c \ strod.c \ suspend.c \ switch.c \ diff --git a/pr/tests/Makefile.in b/pr/tests/Makefile.in index ae6b60ba..f36f2f25 100644 --- a/pr/tests/Makefile.in +++ b/pr/tests/Makefile.in @@ -144,6 +144,7 @@ CSRCS = \ sproc_p.c \ stack.c \ stdio.c \ + str2addr.c \ strod.c \ suspend.c \ switch.c \ diff --git a/pr/tests/runtests.ksh b/pr/tests/runtests.ksh index 9e1b5e64..6af8698d 100755 --- a/pr/tests/runtests.ksh +++ b/pr/tests/runtests.ksh @@ -148,6 +148,7 @@ sockping sprintf stack stdio +str2addr strod switch system diff --git a/pr/tests/str2addr.c b/pr/tests/str2addr.c new file mode 100644 index 00000000..16a75c0b --- /dev/null +++ b/pr/tests/str2addr.c @@ -0,0 +1,63 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* + * The contents of this file are subject to the Netscape Public License + * Version 1.1 (the "NPL"); you may not use this file except in + * compliance with the NPL. You may obtain a copy of the NPL at + * http://www.mozilla.org/NPL/ + * + * Software distributed under the NPL is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL + * for the specific language governing rights and limitations under the + * NPL. + * + * The Initial Developer of this code under the NPL is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1999 Netscape Communications Corporation. All Rights + * Reserved. + */ + +/* + * File: str2addr.c + * Description: a test for PR_StringToNetAddr + */ + +#include "nspr.h" + +#include <stdio.h> +#include <stdlib.h> + +/* Address string to convert */ +#define DEFAULT_IPV4_ADDR_STR "207.200.73.41" + +/* Expected conversion result, in network byte order */ +static unsigned char default_ipv4_addr[] = {207, 200, 73, 41}; + +int main(int argc, char **argv) +{ + PRNetAddr addr; + const char *addrStr; + unsigned char *bytes; + int idx; + + addrStr = DEFAULT_IPV4_ADDR_STR; + if (PR_StringToNetAddr(addrStr, &addr) == PR_FAILURE) { + fprintf(stderr, "PR_StringToNetAddr failed\n"); + exit(1); + } + if (addr.inet.family != PR_AF_INET) { + fprintf(stderr, "addr.inet.family should be %d but is %d\n", + PR_AF_INET, addr.inet.family); + exit(1); + } + bytes = (unsigned char *) &addr.inet.ip; + for (idx = 0; idx < 4; idx++) { + if (bytes[idx] != default_ipv4_addr[idx]) { + fprintf(stderr, "byte %d of IPv4 addr should be %d but is %d\n", + idx, default_ipv4_addr[idx], bytes[idx]); + exit(1); + } + } + + printf("PASS\n"); + return 0; +} |