diff options
author | wtc%netscape.com <devnull@localhost> | 2000-05-17 05:50:17 +0000 |
---|---|---|
committer | wtc%netscape.com <devnull@localhost> | 2000-05-17 05:50:17 +0000 |
commit | b3cc94b356d25dc33a3ddba003a1f0bbdd7fa8b0 (patch) | |
tree | 7a8b9d6621b9b32cb48cb31701f8ef1b8e616fbc | |
parent | 900d8bc770454689ee085847f59e377d091e4720 (diff) | |
download | nspr-hg-b3cc94b356d25dc33a3ddba003a1f0bbdd7fa8b0.tar.gz |
Checked in IPv6 patch for OpenVMS from Colin Blake <colin@theblakes.com>.
(NSPRPUB_CLIENT_BRANCH)
-rw-r--r-- | pr/src/io/pripv6.c | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/pr/src/io/pripv6.c b/pr/src/io/pripv6.c index 280b0bb4..f5635a59 100644 --- a/pr/src/io/pripv6.c +++ b/pr/src/io/pripv6.c @@ -276,11 +276,29 @@ PRStatus _pr_init_ipv6() #if !defined(_PR_INET6) && defined(_PR_HAVE_GETIPNODEBYNAME) PRLibrary *lib; - _pr_getipnodebyname_fp = PR_FindSymbolAndLibrary("getipnodebyname", &lib); +#if defined(VMS) +#define GETIPNODEBYNAME "DECC$GETIPNODEBYNAME" +#define GETIPNODEBYADDR "DECC$GETIPNODEBYADDR" +#define FREEHOSTENT "DECC$FREEHOSTENT" +#define GAISTRERROR "DECC$GAISTRERROR" + typedef char * (*_pr_getstrerror_t)(int); + _pr_getstrerror_t _pr_gaistrerror_fp; + _pr_getipnodebyname_fp = NULL; + _pr_gaistrerror_fp = (_pr_getstrerror_t)PR_FindSymbolAndLibrary(GAISTRERROR, &lib); + if (NULL != _pr_gaistrerror_fp) { + if (NULL != (*_pr_gaistrerror_fp)(0)) + _pr_getipnodebyname_fp = PR_FindSymbol(lib, GETIPNODEBYNAME); + } +#else +#define GETIPNODEBYNAME "getipnodebyname" +#define GETIPNODEBYADDR "getipnodebyaddr" +#define FREEHOSTENT "freehostent" + _pr_getipnodebyname_fp = PR_FindSymbolAndLibrary(GETIPNODEBYNAME, &lib); +#endif if (NULL != _pr_getipnodebyname_fp) { - _pr_freehostent_fp = PR_FindSymbol(lib, "freehostent"); + _pr_freehostent_fp = PR_FindSymbol(lib, FREEHOSTENT); if (NULL != _pr_freehostent_fp) { - _pr_getipnodebyaddr_fp = PR_FindSymbol(lib, "getipnodebyaddr"); + _pr_getipnodebyaddr_fp = PR_FindSymbol(lib, GETIPNODEBYADDR); if (NULL != _pr_getipnodebyaddr_fp) _pr_ipv6_is_present = PR_TRUE; else |