summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwtc%netscape.com <devnull@localhost>1999-06-04 03:01:40 +0000
committerwtc%netscape.com <devnull@localhost>1999-06-04 03:01:40 +0000
commitca3350a7e0f54616f1bf9cf73d2556ed5680e513 (patch)
tree971e38a4cda33be6067860ddb94ff095aca80a9d
parentc5796f402a91b1e23c88e03cbc0210d3442c6b09 (diff)
downloadnspr-hg-ca3350a7e0f54616f1bf9cf73d2556ed5680e513.tar.gz
More OpenVMS changes from Colin R. Blake <colin@theblakes.com>.
Modified files: prstrms.cpp, pr/include/md/Makefile, _openvms.h, and prmapopt.c.
-rw-r--r--lib/prstreams/prstrms.cpp2
-rw-r--r--pr/include/md/Makefile2
-rw-r--r--pr/include/md/_openvms.h3
-rw-r--r--pr/src/io/prmapopt.c22
4 files changed, 27 insertions, 2 deletions
diff --git a/lib/prstreams/prstrms.cpp b/lib/prstreams/prstrms.cpp
index 00c641bc..954a72e4 100644
--- a/lib/prstreams/prstrms.cpp
+++ b/lib/prstreams/prstrms.cpp
@@ -46,7 +46,7 @@
#define _PRSTR_DELBUF(x) delbuf(x)
#define _PRSTR_DELBUF_C(c, x) c::_PRSTR_DELBUF(x)
#elif defined(VMS)
-#undef _PRSTR_BP /* as nothing */
+#undef _PRSTR_BP
#define _PRSTR_DELBUF(x) /* as nothing */
#define _PRSTR_DELBUF_C(c, x) /* as nothing */
#elif defined(OSF1)
diff --git a/pr/include/md/Makefile b/pr/include/md/Makefile
index 18577166..b976d2d1 100644
--- a/pr/include/md/Makefile
+++ b/pr/include/md/Makefile
@@ -157,7 +157,7 @@ ifeq ($(OS_ARCH),OpenVMS)
rm -f $(DIST)/include/$(MDCPUCFG_H)
if [ ! -L $(DIST)/include/prcpucfg.h ]; then \
mv -f $(DIST)/include/prcpucfg.h $(MDCPUCFG_H); \
- ln -fs $(MOD_DEPTH)/nsprpub/pr/include/md/$(MDCPUCFG_H) \
+ ln -fs ../../../nsprpub/pr/include/md/$(MDCPUCFG_H) \
$(DIST)/include/prcpucfg.h; \
fi
endif
diff --git a/pr/include/md/_openvms.h b/pr/include/md/_openvms.h
index ebc12887..050e158a 100644
--- a/pr/include/md/_openvms.h
+++ b/pr/include/md/_openvms.h
@@ -50,11 +50,14 @@
/*
** OpenVMS doesn't have these in socket.h.
+** Does in later versions!
*/
+#if 0
struct ip_mreq {
struct in_addr imr_multiaddr; /* IP multicast address of group */
struct in_addr imr_interface; /* local IP address of interface */
};
+#endif
/*
* OSF1 needs the MAP_FIXED flag to ensure that mmap returns a pointer
diff --git a/pr/src/io/prmapopt.c b/pr/src/io/prmapopt.c
index 71850af1..1d618187 100644
--- a/pr/src/io/prmapopt.c
+++ b/pr/src/io/prmapopt.c
@@ -337,6 +337,28 @@ PRStatus PR_CALLBACK _PR_SocketSetSocketOption(PRFileDesc *fd, const PRSocketOpt
*********************************************************************
*/
+#if defined(VMS)
+/*
+** Sad but true. The DEC C header files define the following socket options
+** differently to what UCX is expecting. The values that UCX expects are
+** defined in SYS$LIBRARY:UCX$INETDEF.H. We redefine them here to the values
+** that UCX expects. Note that UCX V4.x will only accept these values while
+** UCX V5.x will accept either. So in theory this hack can be removed once
+** UCX V5 is the minimum.
+*/
+#undef IP_MULTICAST_IF
+#undef IP_MULTICAST_TTL
+#undef IP_MULTICAST_LOOP
+#undef IP_ADD_MEMBERSHIP
+#undef IP_DROP_MEMBERSHIP
+#include <ucx$inetdef.h>
+#define IP_MULTICAST_IF UCX$C_IP_MULTICAST_IF
+#define IP_MULTICAST_TTL UCX$C_IP_MULTICAST_TTL
+#define IP_MULTICAST_LOOP UCX$C_IP_MULTICAST_LOOP
+#define IP_ADD_MEMBERSHIP UCX$C_IP_ADD_MEMBERSHIP
+#define IP_DROP_MEMBERSHIP UCX$C_IP_DROP_MEMBERSHIP
+#endif
+
/*
* Not every platform has all the socket options we want to
* support. Some older operating systems such as SunOS 4.1.3