pacho 15/05/09 11:55:19
Added: 010_multiple_proxies.patch 003_ipv6.patch
011_apache2.4.patch
012_Add-missing-header-for-inet_addr.patch
Log:
Apply debian patches also adding support for apache 2.4 (#532864)
(Portage version: 2.2.18/cvs/Linux x86_64, signed Manifest commit with key
A188FBD4)
Revision Changes Path
1.1 www-apache/mod_rpaf/files/010_multiple_proxies.patch
file :
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/www-apache/mod_rpaf/files/010_multiple_proxies.patch?rev=1.1&view=markup
plain:
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/www-apache/mod_rpaf/files/010_multiple_proxies.patch?rev=1.1&content-type=text/plain
Index: 010_multiple_proxies.patch
===================================================================
Description: Use the last value from the X-Forwarded-For header, which
is not in RPAFproxy_ips as the client IP, falling back to the first one
if they are all known proxies.
Author: Dagfinn Ilmari Mannsåker <[email protected]>
---
mod_rpaf-2.0.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
--- a/mod_rpaf-2.0.c
+++ b/mod_rpaf-2.0.c
@@ -154,6 +154,16 @@
return APR_SUCCESS;
}
+static char* last_not_in_array(apr_array_header_t *forwarded_for,
+ apr_array_header_t *proxy_ips) {
+ int i;
+ for (i = (forwarded_for->nelts)-1; i > 0; i--) {
+ if (!is_in_array(((char **)forwarded_for->elts)[i], proxy_ips))
+ break;
+ }
+ return ((char **)forwarded_for->elts)[i];
+}
+
static int change_remote_ip(request_rec *r) {
const char *fwdvalue;
char *val;
@@ -185,7 +195,7 @@
rcr->old_ip = apr_pstrdup(r->connection->pool,
r->connection->remote_ip);
rcr->r = r;
apr_pool_cleanup_register(r->pool, (void *)rcr, rpaf_cleanup,
apr_pool_cleanup_null);
- r->connection->remote_ip = apr_pstrdup(r->connection->pool, ((char
**)arr->elts)[((arr->nelts)-1)]);
+ r->connection->remote_ip = apr_pstrdup(r->connection->pool,
last_not_in_array(arr, cfg->proxy_ips));
r->connection->remote_addr->sa.sin.sin_addr.s_addr =
apr_inet_addr(r->connection->remote_ip);
apr_sockaddr_t *tmpsa;
int ret = apr_sockaddr_info_get(&tmpsa, r->connection->remote_ip,
APR_UNSPEC, r->connection->remote_addr->port, 0,
r->connection->remote_addr->pool);
1.1 www-apache/mod_rpaf/files/003_ipv6.patch
file :
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/www-apache/mod_rpaf/files/003_ipv6.patch?rev=1.1&view=markup
plain:
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/www-apache/mod_rpaf/files/003_ipv6.patch?rev=1.1&content-type=text/plain
Index: 003_ipv6.patch
===================================================================
Description: ipv6 fixes
Author: Piotr Roszatycki <[email protected]>
Reviewed-by: Sergey B Kirpichev <[email protected]>
Bug-Debian: http://bugs.debian.org/726529
---
mod_rpaf-2.0.c | 6 ++++++
1 file changed, 6 insertions(+)
--- a/mod_rpaf-2.0.c
+++ b/mod_rpaf-2.0.c
@@ -72,6 +72,8 @@
#include "http_vhost.h"
#include "apr_strings.h"
+#include <arpa/inet.h>
+
module AP_MODULE_DECLARE_DATA rpaf_module;
typedef struct {
@@ -185,6 +187,10 @@
apr_pool_cleanup_register(r->pool, (void *)rcr, rpaf_cleanup,
apr_pool_cleanup_null);
r->connection->remote_ip = apr_pstrdup(r->connection->pool, ((char
**)arr->elts)[((arr->nelts)-1)]);
r->connection->remote_addr->sa.sin.sin_addr.s_addr =
apr_inet_addr(r->connection->remote_ip);
+ apr_sockaddr_t *tmpsa;
+ int ret = apr_sockaddr_info_get(&tmpsa, r->connection->remote_ip,
APR_UNSPEC, r->connection->remote_addr->port, 0,
r->connection->remote_addr->pool);
+ if (ret == APR_SUCCESS)
+ memcpy(r->connection->remote_addr, tmpsa,
sizeof(apr_sockaddr_t));
if (cfg->sethostname) {
const char *hostvalue;
if (hostvalue = apr_table_get(r->headers_in,
"X-Forwarded-Host")) {
1.1 www-apache/mod_rpaf/files/011_apache2.4.patch
file :
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/www-apache/mod_rpaf/files/011_apache2.4.patch?rev=1.1&view=markup
plain:
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/www-apache/mod_rpaf/files/011_apache2.4.patch?rev=1.1&content-type=text/plain
Index: 011_apache2.4.patch
===================================================================
Description: Apache 2.4 compatibility patch
Author: Sergey B Kirpichev <[email protected]>
Bug-Debian: http://bugs.debian.org/666792
---
mod_rpaf-2.0.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
--- a/mod_rpaf-2.0.c
+++ b/mod_rpaf-2.0.c
@@ -149,8 +149,8 @@
static apr_status_t rpaf_cleanup(void *data) {
rpaf_cleanup_rec *rcr = (rpaf_cleanup_rec *)data;
- rcr->r->connection->remote_ip = apr_pstrdup(rcr->r->connection->pool,
rcr->old_ip);
- rcr->r->connection->remote_addr->sa.sin.sin_addr.s_addr =
apr_inet_addr(rcr->r->connection->remote_ip);
+ rcr->r->connection->client_ip = apr_pstrdup(rcr->r->connection->pool,
rcr->old_ip);
+ rcr->r->connection->client_addr->sa.sin.sin_addr.s_addr =
apr_inet_addr(rcr->r->connection->client_ip);
return APR_SUCCESS;
}
@@ -173,7 +173,7 @@
if (!cfg->enable)
return DECLINED;
- if (is_in_array(r->connection->remote_ip, cfg->proxy_ips) == 1) {
+ if (is_in_array(r->connection->client_ip, cfg->proxy_ips) == 1) {
/* check if cfg->headername is set and if it is use
that instead of X-Forwarded-For by default */
if (cfg->headername && (fwdvalue = apr_table_get(r->headers_in,
cfg->headername))) {
@@ -192,15 +192,15 @@
if (*fwdvalue != '\0')
++fwdvalue;
}
- rcr->old_ip = apr_pstrdup(r->connection->pool,
r->connection->remote_ip);
+ rcr->old_ip = apr_pstrdup(r->connection->pool,
r->connection->client_ip);
rcr->r = r;
apr_pool_cleanup_register(r->pool, (void *)rcr, rpaf_cleanup,
apr_pool_cleanup_null);
- r->connection->remote_ip = apr_pstrdup(r->connection->pool,
last_not_in_array(arr, cfg->proxy_ips));
- r->connection->remote_addr->sa.sin.sin_addr.s_addr =
apr_inet_addr(r->connection->remote_ip);
+ r->connection->client_ip = apr_pstrdup(r->connection->pool,
last_not_in_array(arr, cfg->proxy_ips));
+ r->connection->client_addr->sa.sin.sin_addr.s_addr =
apr_inet_addr(r->connection->client_ip);
apr_sockaddr_t *tmpsa;
- int ret = apr_sockaddr_info_get(&tmpsa, r->connection->remote_ip,
APR_UNSPEC, r->connection->remote_addr->port, 0,
r->connection->remote_addr->pool);
+ int ret = apr_sockaddr_info_get(&tmpsa, r->connection->client_ip,
APR_UNSPEC, r->connection->client_addr->port, 0,
r->connection->client_addr->pool);
if (ret == APR_SUCCESS)
- memcpy(r->connection->remote_addr, tmpsa,
sizeof(apr_sockaddr_t));
+ memcpy(r->connection->client_addr, tmpsa,
sizeof(apr_sockaddr_t));
if (cfg->sethostname) {
const char *hostvalue;
if (hostvalue = apr_table_get(r->headers_in,
"X-Forwarded-Host")) {
1.1
www-apache/mod_rpaf/files/012_Add-missing-header-for-inet_addr.patch
file :
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/www-apache/mod_rpaf/files/012_Add-missing-header-for-inet_addr.patch?rev=1.1&view=markup
plain:
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/www-apache/mod_rpaf/files/012_Add-missing-header-for-inet_addr.patch?rev=1.1&content-type=text/plain
Index: 012_Add-missing-header-for-inet_addr.patch
===================================================================
Description: Add missing header for inet_addr
Author: Sergey B Kirpichev <[email protected]>
---
mod_rpaf-2.0.c | 1 +
1 file changed, 1 insertion(+)
--- a/mod_rpaf-2.0.c
+++ b/mod_rpaf-2.0.c
@@ -64,6 +64,7 @@
*
*/
+#include <arpa/inet.h>
#include "httpd.h"
#include "http_config.h"
#include "http_core.h"