]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
A rather ugly patch since the code was refactored recently to exclude
authorWilliam A. Rowe Jr <wrowe@apache.org>
Fri, 12 Feb 2016 01:19:49 +0000 (01:19 +0000)
committerWilliam A. Rowe Jr <wrowe@apache.org>
Fri, 12 Feb 2016 01:19:49 +0000 (01:19 +0000)
the simple patch for 2.4.x, illustrated below.

Completes the changeset r1729930 and resolves all 2.4.19-dev corrections,
but other 2.5.0-dev specific changes may still be needed on trunk.

--- server/scoreboard.c (revision 1729907)
+++ server/scoreboard.c (working copy)
@@ -491,9 +491,8 @@
             ws->conn_bytes = 0;
         }
         if (r) {
-            const char *client = ap_get_remote_host(c, r->per_dir_config,
-                                 REMOTE_NOLOOKUP, NULL);
-            if (!client || !strcmp(client, c->client_ip)) {
+            const char *client;
+            if (!(client = ap_get_useragent_host(r, REMOTE_NOLOOKUP, NULL))) {
                 apr_cpystrn(ws->client, r->useragent_ip, sizeof(ws->client));
             }
             else {

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1729931 13f79535-47bb-0310-9956-ffa450edef68

server/scoreboard.c

index b7f3500502ea5db0e7c2a67158673316ff1fa88b..23e572b47b9a0164d466057e98676aef9cc05953 100644 (file)
@@ -510,15 +510,18 @@ static int update_child_status_internal(int child_num,
             else if (r) {
                 copy_request(ws->request, sizeof(ws->request), r);
             }
-            if (r || c) {
-                val = ap_get_remote_host(c, r? r->per_dir_config : NULL, 
-                                         REMOTE_NOLOOKUP, NULL);
-                if (r && (!val || !strcmp(val, c->client_ip))) {
+            if (r) {
+                if (!(val = ap_get_useragent_host(r, REMOTE_NOLOOKUP, NULL)))
                     apr_cpystrn(ws->client, r->useragent_ip, sizeof(ws->client));
-                }
-                else {
+                else
+                    apr_cpystrn(ws->client, val, sizeof(ws->client));
+            }
+            else if (c) {
+                if (!(val = ap_get_remote_host(c, c->base_server->lookup_defaults,
+                                               REMOTE_NOLOOKUP, NULL)))
+                    apr_cpystrn(ws->client, c->client_ip, sizeof(ws->client));
+                else
                     apr_cpystrn(ws->client, val, sizeof(ws->client));
-                }
             }
             if (s) {
                 if (c) {