aboutsummaryrefslogtreecommitdiffstats
path: root/www/mod_perl
diff options
context:
space:
mode:
authorclement <clement@FreeBSD.org>2004-08-19 03:11:12 +0800
committerclement <clement@FreeBSD.org>2004-08-19 03:11:12 +0800
commit6e1a239a01bd30136dfc04e0c5d00bc813059645 (patch)
tree811423c2778f9da844218a6ce27594d360e036b9 /www/mod_perl
parentb92347fbbc5b92e577d343964c031d22e2de7e8b (diff)
downloadfreebsd-ports-gnome-6e1a239a01bd30136dfc04e0c5d00bc813059645.tar.gz
freebsd-ports-gnome-6e1a239a01bd30136dfc04e0c5d00bc813059645.tar.zst
freebsd-ports-gnome-6e1a239a01bd30136dfc04e0c5d00bc813059645.zip
- Fix buil with apache13 + ipv6
Set APACHE_PORT or define WITH_APACHE_IPV6 PR: ports/68158 Submitted by: SoD <sod at cd dot pri dot ee> Obtained from: NetBSD
Diffstat (limited to 'www/mod_perl')
-rw-r--r--www/mod_perl/Makefile4
-rw-r--r--www/mod_perl/files/patch-Makefile.PL (renamed from www/mod_perl/files/patch-aa)0
-rw-r--r--www/mod_perl/files/patch-src:modules:perl:Connection.xs39
3 files changed, 43 insertions, 0 deletions
diff --git a/www/mod_perl/Makefile b/www/mod_perl/Makefile
index e88fb95ad830..0d196c266410 100644
--- a/www/mod_perl/Makefile
+++ b/www/mod_perl/Makefile
@@ -40,6 +40,10 @@ MAN3= Apache.3 Apache::Constants.3 Apache::ExtUtils.3 \
mod_perl_cvs.3 mod_perl_method_handlers.3 mod_perl_traps.3 \
mod_perl_tuning.3
+.if defined(WITH_APACHE_IPV6) && ${APACHE_PORT:Mipv6}
+CFLAGS+= -DAPACHE6
+.endif
+
.include <bsd.port.pre.mk>
post-install:
diff --git a/www/mod_perl/files/patch-aa b/www/mod_perl/files/patch-Makefile.PL
index b8df70a4f89d..b8df70a4f89d 100644
--- a/www/mod_perl/files/patch-aa
+++ b/www/mod_perl/files/patch-Makefile.PL
diff --git a/www/mod_perl/files/patch-src:modules:perl:Connection.xs b/www/mod_perl/files/patch-src:modules:perl:Connection.xs
new file mode 100644
index 000000000000..22eea28838da
--- /dev/null
+++ b/www/mod_perl/files/patch-src:modules:perl:Connection.xs
@@ -0,0 +1,39 @@
+--- src/modules/perl/Connection.xs.orig Fri Nov 23 06:19:44 2001
++++ src/modules/perl/Connection.xs Fri Nov 23 10:29:44 2001
+@@ -78,7 +78,11 @@
+ RETVAL = newSVpv((char *)&conn->remote_addr,
+ sizeof conn->remote_addr);
+ if(sv_addr) {
++#ifdef APACHE6
++ struct sockaddr_storage addr;
++#else
+ struct sockaddr_in addr;
++#endif
+ STRLEN sockaddrlen;
+ char * new_addr = SvPV(sv_addr,sockaddrlen);
+ if (sockaddrlen != sizeof(addr)) {
+@@ -106,7 +110,26 @@
+ #else
+ conn->remote_ip = pstrdup(conn->pool, (char *)SvPV(ST(1),na));
+ #endif
++#ifdef APACHE6
++ {
++ struct addrinfo hints, *res0;
++ int error;
++
++ memset(&hints, 0, sizeof(hints));
++ hints.ai_family = PF_UNSPEC;
++ hints.ai_flags = AI_NUMERICHOST;
++ error = getaddrinfo(conn->remote_ip, NULL, &hints, &res0);
++ if (!error) {
++ memcpy(&conn->remote_addr, res0->ai_addr, res0->ai_addrlen);
++ freeaddrinfo(res0);
++ } else {
++ croak("Bad ip address in remote_ip getaddrinfo failed %s",
++ gai_strerror(error));
++ }
++ }
++#else
+ conn->remote_addr.sin_addr.s_addr = inet_addr(conn->remote_ip);
++#endif
+ }