From: Daniel Ruggeri <druggeri@apache.org>
Date: Wed, 18 Apr 2018 22:36:14 +0000 (+0000)
Subject:   *) mod_remoteip: make proxy-protocol work on HTTP/2 connections.
X-Git-Tag: 2.4.34~202
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3f46eb75f5a3618944aeffa7f5d383083e9a5c38;p=apache

  *) mod_remoteip: make proxy-protocol work on HTTP/2 connections.
     trunk patch: http://svn.apache.org/r1827196
     2.4.x patch: svn merge -c 1827196 ^/httpd/httpd/trunk .
     +1: icing, ylavic, jim


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1829486 13f79535-47bb-0310-9956-ffa450edef68
---

diff --git a/CHANGES b/CHANGES
index 5ac188f94e..791f4b9516 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,10 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache 2.4.34
 
+  *) mod_remoteip: make proxy-protocol work on slave connections, e.g. in HTTP/2
+     requests. See also https://github.com/roadrunner2/mod-proxy-protocol/issues/6
+     [Stefan Eissing]
+
   *) mod_ssl: Fix merging of proxy SSL context outside <Proxy> sections,
      regression introduced in 2.4.30. PR 62232. [Rainer Jung, Yann Ylavic]
 
diff --git a/STATUS b/STATUS
index 1673530dc1..16cd5c2af1 100644
--- a/STATUS
+++ b/STATUS
@@ -138,11 +138,6 @@ PATCHES PROPOSED TO BACKPORT FROM TRUNK:
                  'no_ocsp_for_cert_ok', which is undocumented.
                  Adding some new paramters also deserves a CHANGES entry.
 
-  *) mod_remoteip: make proxy-protocol work on HTTP/2 connections.
-     trunk patch: http://svn.apache.org/r1827196
-     2.4.x patch: svn merge -c 1827196 ^/httpd/httpd/trunk .
-     +1: icing, ylavic, jim
-
   *) core: Add <IfFile>, <IfDirective>, <IfSection>
      trunk patch: http://svn.apache.org/r1769718
                   http://svn.apache.org/r1785943
diff --git a/modules/metadata/mod_remoteip.c b/modules/metadata/mod_remoteip.c
index 4101b4ebdc..e67ff3655f 100644
--- a/modules/metadata/mod_remoteip.c
+++ b/modules/metadata/mod_remoteip.c
@@ -887,8 +887,13 @@ static int remoteip_hook_pre_connection(conn_rec *c, void *csd)
     remoteip_conn_config_t *conn_conf;
     int i;
 
-    /* Do not attempt to manipulate slave connections */
+    /* Establish master config in slave connections, so that request processing
+     * finds it. */
     if (c->master != NULL) {
+        conn_conf = ap_get_module_config(c->master->conn_config, &remoteip_module);
+        if (conn_conf) {
+            ap_set_module_config(c->conn_config, &remoteip_module, conn_conf);
+        }
         return DECLINED;
     }