View | Details | Raw Unified | Return to bug 209869 | Differences between
and this patch

Collapse All | Expand All

(-)www/mod_rpaf2/Makefile (-4 / +5 lines)
Lines 2-10 Link Here
2
# $FreeBSD$
2
# $FreeBSD$
3
3
4
PORTNAME=	mod_rpaf
4
PORTNAME=	mod_rpaf
5
PORTVERSION=	0.6.0
5
PORTVERSION=	0.8.4
6
DISTVERSIONPREFIX=	v
7
PORTREVISION=	3
8
CATEGORIES=	www
6
CATEGORIES=	www
9
PKGNAMESUFFIX=	2
7
PKGNAMESUFFIX=	2
10
8
Lines 13-24 Link Here
13
11
14
USE_GITHUB=	yes
12
USE_GITHUB=	yes
15
GH_ACCOUNT=	gnif
13
GH_ACCOUNT=	gnif
14
GH_TAGNAME=	v0.8.4
16
15
16
DOCS=	README.md
17
17
USE_APACHE=	22+
18
USE_APACHE=	22+
18
AP_FAST_BUILD=	yes
19
AP_FAST_BUILD=	yes
19
AP_GENPLIST=	yes
20
AP_GENPLIST=	yes
20
SHORTMODNAME=	rpaf
21
SHORTMODNAME=	rpaf
21
22
22
SRC_FILE=	mod_rpaf-2.0.c
23
SRC_FILE=	mod_rpaf.c
23
24
24
.include <bsd.port.mk>
25
.include <bsd.port.mk>
(-)www/mod_rpaf2/distinfo (-3 / +3 lines)
Lines 1-3 Link Here
1
TIMESTAMP = 1464785880
1
TIMESTAMP = 1464885904
2
SHA256 (gnif-mod_rpaf-v0.6.0_GH0.tar.gz) = f89e51d7331d336a00833d6dc1cc786430d9f9c53bbbac97f22a96dbe803c7e7
2
SHA256 (gnif-mod_rpaf-0.8.4-v0.8.4_GH0.tar.gz) = b78f292d7336f839527d6fb2213116c995a525ad9aa38c344c485abbd76848f5
3
SIZE (gnif-mod_rpaf-v0.6.0_GH0.tar.gz) = 7643
3
SIZE (gnif-mod_rpaf-0.8.4-v0.8.4_GH0.tar.gz) = 6458
(-)www/mod_rpaf2/files/patch-mod_rpaf-2.0.c (-66 lines)
Lines 1-66 Link Here
1
PR: ports/179525 	Fix for mod_rpaf2 compatibility with Apache 2.4
2
========================================================================
3
--- ./mod_rpaf-2.0.c.orig
4
+++ ./mod_rpaf-2.0.c
5
@@ -86,6 +86,23 @@
6
     request_rec *r;
7
 } rpaf_cleanup_rec;
8
 
9
+
10
+inline apr_sockaddr_t * rpaf_client_addr(conn_rec *c) {
11
+#if AP_SERVER_MAJORVERSION_NUMBER >= 2 && AP_SERVER_MINORVERSION_NUMBER >= 4
12
+  return c->client_addr;
13
+#else
14
+  return c->remote_addr;
15
+#endif
16
+}
17
+
18
+inline char * rpaf_client_ip(conn_rec *c) {
19
+#if AP_SERVER_MAJORVERSION_NUMBER >= 2 && AP_SERVER_MINORVERSION_NUMBER >= 4
20
+  return c->client_ip;
21
+#else
22
+  return c->remote_ip;
23
+#endif
24
+}
25
+
26
 static void *rpaf_create_server_cfg(apr_pool_t *p, server_rec *s) {
27
     rpaf_server_cfg *cfg = (rpaf_server_cfg *)apr_pcalloc(p, sizeof(rpaf_server_cfg));
28
     if (!cfg)
29
@@ -147,8 +164,9 @@
30
 
31
 static apr_status_t rpaf_cleanup(void *data) {
32
     rpaf_cleanup_rec *rcr = (rpaf_cleanup_rec *)data;
33
-    rcr->r->connection->remote_ip   = apr_pstrdup(rcr->r->connection->pool, rcr->old_ip);
34
-    rcr->r->connection->remote_addr->sa.sin.sin_addr.s_addr = apr_inet_addr(rcr->r->connection->remote_ip);
35
+    char *remote_ip = rpaf_client_ip(rcr->r->connection);
36
+    strcpy(remote_ip,apr_pstrdup(rcr->r->connection->pool, rcr->old_ip)); 
37
+    rpaf_client_addr(rcr->r->connection)->sa.sin.sin_addr.s_addr = apr_inet_addr(remote_ip);
38
     return APR_SUCCESS;
39
 }
40
 
41
@@ -160,8 +178,8 @@
42
 
43
     if (!cfg->enable)
44
         return DECLINED;
45
-
46
-    if (is_in_array(r->connection->remote_ip, cfg->proxy_ips) == 1) {
47
+    char *remote_ip = rpaf_client_ip(r->connection);
48
+    if (is_in_array(remote_ip, cfg->proxy_ips) == 1) {
49
         /* check if cfg->headername is set and if it is use
50
            that instead of X-Forwarded-For by default */
51
         if (cfg->headername && (fwdvalue = apr_table_get(r->headers_in, cfg->headername))) {
52
@@ -180,11 +198,11 @@
53
                 if (*fwdvalue != '\0')
54
                     ++fwdvalue;
55
             }
56
-            rcr->old_ip = apr_pstrdup(r->connection->pool, r->connection->remote_ip);
57
+            rcr->old_ip = apr_pstrdup(r->connection->pool, remote_ip);
58
             rcr->r = r;
59
             apr_pool_cleanup_register(r->pool, (void *)rcr, rpaf_cleanup, apr_pool_cleanup_null);
60
-            r->connection->remote_ip = apr_pstrdup(r->connection->pool, ((char **)arr->elts)[((arr->nelts)-1)]);
61
-            r->connection->remote_addr->sa.sin.sin_addr.s_addr = apr_inet_addr(r->connection->remote_ip);
62
+            strcpy(remote_ip,apr_pstrdup(r->connection->pool, ((char **)arr->elts)[((arr->nelts)-1)]));
63
+            rpaf_client_addr(r->connection)->sa.sin.sin_addr.s_addr = apr_inet_addr(remote_ip);
64
             if (cfg->sethostname) {
65
                 const char *hostvalue;
66
                 if (hostvalue = apr_table_get(r->headers_in, "X-Forwarded-Host")) {

Return to bug 209869