develooper Front page | perl.perl5.porters | Postings from September 2010

[perl #78132] [PATCH] Fix perl build problems on Stratus VOS

Thread Next
From:
Paul Green
Date:
September 30, 2010 01:00
Subject:
[perl #78132] [PATCH] Fix perl build problems on Stratus VOS
Message ID:
rt-3.6.HEAD-24759-1285772720-521.78132-75-0@perl.org
# New Ticket Created by  Paul Green 
# Please include the string:  [perl #78132]
# in the subject line of all future correspondence about this issue. 
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=78132 >


--- perl-current/Makefile.SH~	2010-09-05 10:39:10.000000000 -0400
+++ perl-current/Makefile.SH	2010-09-14 00:49:48.000000000 -0400
@@ -555,7 +555,7 @@
 .c.s:
 	$(CCCMDSRC) -S $*.c
 
-all: $(FIRSTMAKEFILE) $(MINIPERL_EXE) miniperl $(generated_pods) $(private) $(unidatafiles) $(public) $(dynamic_ext) $(nonxs_ext) extras.make
+all: $(FIRSTMAKEFILE) $(MINIPERL_EXE) $(generated_pods) $(private) $(unidatafiles) $(public) $(dynamic_ext) $(nonxs_ext) extras.make
 	@echo " ";
 	@echo "	Everything is up to date. Type '$(MAKE) test' to run test suite."
 
--- perl-current/ext/Socket/Socket.xs~	2010-04-24 16:58:10.000000000 -0400
+++ perl-current/ext/Socket/Socket.xs	2010-09-13 17:07:15.000000000 -0400
@@ -465,22 +465,34 @@
         CODE:
 #ifdef HAS_INETNTOP
 	STRLEN addrlen, struct_size;
+#ifdef AF_INET6
 	struct in6_addr addr;
 	char str[INET6_ADDRSTRLEN];
+#else
+	struct in_addr addr;
+	char str[INET_ADDRSTRLEN];
+#endif
 	char *ip_address = SvPV(ip_address_sv, addrlen);
 
-        if(af == AF_INET) {
-            struct_size = sizeof(struct in_addr);
-        } else if(af == AF_INET6) {
-            struct_size = sizeof(struct in6_addr);
-        } else {
-           croak("Bad address family for %s, got %d, should be either AF_INET or AF_INET6",
+	struct_size = sizeof(addr);
+
+	if(af != AF_INET
+#ifdef AF_INET6
+	    && af != AF_INET6
+#endif
+	  ) {
+           croak("Bad address family for %s, got %d, should be"
+#ifdef AF_INET6
+	       " either AF_INET or AF_INET6",
+#else
+	       " AF_INET",
+#endif
                "Socket::inet_ntop",
                af);
         }
 
 	Copy( ip_address, &addr, sizeof addr, char );
-	inet_ntop(af, &addr, str, INET6_ADDRSTRLEN);
+	inet_ntop(af, &addr, str, sizeof str);
 
 	ST(0) = newSVpvn_flags(str, strlen(str), SVs_TEMP);
 #else
@@ -494,9 +506,23 @@
         CODE:
 #ifdef HAS_INETPTON
         int ok;
-        struct in6_addr ip_address;
-        if(af != AF_INET && af != AF_INET6) {
-           croak("Bad address family for %s, got %d, should be either AF_INET or AF_INET6",
+#ifdef AF_INET6
+	struct in6_addr ip_address;
+#else
+	struct in_addr ip_address;
+#endif
+
+	if(af != AF_INET
+#ifdef AF_INET6
+		&& af != AF_INET6
+#endif
+	  ) {
+		croak("Bad address family for %s, got %d, should be"
+#ifdef AF_INET6
+			" either AF_INET or AF_INET6",
+#else
+			" AF_INET",
+#endif
                         "Socket::inet_pton",
                         af);
         }
@@ -504,8 +530,7 @@
 
         ST(0) = sv_newmortal();
         if (ok) {
-                sv_setpvn( ST(0), (char *)&ip_address,
-                           af == AF_INET6 ? sizeof(ip_address) : sizeof(struct in_addr) );
+                sv_setpvn( ST(0), (char *)&ip_address, sizeof(ip_address) );
         }
 #else
         ST(0) = (SV *)not_here("inet_pton");

Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About