df96ba64a5
This is part 2 of 2 to fix PR#14693 by Tero Kivinen
43 lines
1.2 KiB
Text
43 lines
1.2 KiB
Text
$NetBSD: patch-ab,v 1.5 2001/11/23 10:52:24 martti Exp $
|
|
|
|
--- src/modules/perl/Connection.xs.orig Fri Sep 29 16:41:30 2000
|
|
+++ src/modules/perl/Connection.xs Fri Nov 23 11:38:03 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
|
|
}
|
|
|
|
OUTPUT:
|