add SO_REUSEPORT to export list in Socket.pm for better multicast support (resend)
[p5sagit/p5-mst-13.2.git] / ext / Socket / Socket.xs
index c09c313..0584e78 100644 (file)
@@ -1,3 +1,4 @@
+#define PERL_NO_GET_CONTEXT
 #include "EXTERN.h"
 #include "perl.h"
 #include "XSUB.h"
 # ifdef I_SYS_UN
 #  include <sys/un.h>
 # endif
+/* XXX Configure test for <netinet/in_systm.h needed XXX */
+# if defined(NeXT) || defined(__NeXT__)
+#  include <netinet/in_systm.h>
+# endif
 # ifdef I_NETINET_IN
 #  include <netinet/in.h>
 # endif
@@ -68,6 +73,7 @@
 static int
 my_inet_aton(register const char *cp, struct in_addr *addr)
 {
+       dTHX;
        register U32 val;
        register int base;
        register char c;
@@ -660,6 +666,24 @@ constant(char *name, int arg)
 #else
            goto not_there;
 #endif
+       if (strEQ(name, "SHUT_RD"))
+#ifdef SHUT_RD
+           return SHUT_RD;
+#else
+           return 0;
+#endif
+       if (strEQ(name, "SHUT_RDWR"))
+#ifdef SHUT_RDWR
+           return SHUT_RDWR;
+#else
+           return 2;
+#endif
+       if (strEQ(name, "SHUT_WR"))
+#ifdef SHUT_WR
+           return SHUT_WR;
+#else
+           return 1;
+#endif
        if (strEQ(name, "SOCK_DGRAM"))
 #ifdef SOCK_DGRAM
            return SOCK_DGRAM;