summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwtc%netscape.com <devnull@localhost>2000-05-17 05:50:17 +0000
committerwtc%netscape.com <devnull@localhost>2000-05-17 05:50:17 +0000
commitb3cc94b356d25dc33a3ddba003a1f0bbdd7fa8b0 (patch)
tree7a8b9d6621b9b32cb48cb31701f8ef1b8e616fbc
parent900d8bc770454689ee085847f59e377d091e4720 (diff)
downloadnspr-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.c24
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