]> granicus.if.org Git - apache/commitdiff
hostname: Test and log useragent_host per-request across various modules,
authorWilliam A. Rowe Jr <wrowe@apache.org>
Fri, 12 Feb 2016 01:17:03 +0000 (01:17 +0000)
committerWilliam A. Rowe Jr <wrowe@apache.org>
Fri, 12 Feb 2016 01:17:03 +0000 (01:17 +0000)
including the scoreboard, expression and rewrite engines, setenvif,
authz_host, access_compat, custom logging, ssl and REMOTE_HOST variables.
PR55348  [William Rowe]

This is the complete change set which applies cleanly to 2.4.x as well,
the server/scoreboard.c will follow, which does not apply due to drift.

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

CHANGES
modules/aaa/mod_access_compat.c
modules/aaa/mod_authz_host.c
modules/arch/netware/mod_nw_ssl.c
modules/mappers/mod_rewrite.c
modules/metadata/mod_setenvif.c
modules/proxy/ajp_header.c
modules/ssl/ssl_engine_vars.c
server/util_expr_eval.c
server/util_script.c

diff --git a/CHANGES b/CHANGES
index e7df1730c5bab9d27046c53b6a9b2c7d3282b8b6..a5ba845e8adf991f1b9746dcb148953f3485c88e 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,11 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache 2.5.0
 
+  *) hostname: Test and log useragent_host per-request across various modules,
+     including the scoreboard, expression and rewrite engines, setenvif,
+     authz_host, access_compat, custom logging, ssl and REMOTE_HOST variables.
+     PR55348  [William Rowe]
   *) core: Track the useragent_host per-request when mod_remoteip or similar
      modules track a per-request useragent_ip.  Modules should be updated
      to inquire for ap_get_useragent_host() in place of ap_get_remote_host().
index 591fcebed8e5ab32afe2d9e8103264e1688968b1..e9f1abe4835b03d1d90bb5e75f24d58fec4d5990 100644 (file)
@@ -279,10 +279,8 @@ static int find_allowdeny(request_rec *r, apr_array_header_t *a, int method)
             if (!gothost) {
                 int remotehost_is_ip;
 
-                remotehost = ap_get_remote_host(r->connection,
-                                                r->per_dir_config,
-                                                REMOTE_DOUBLE_REV,
-                                                &remotehost_is_ip);
+                remotehost = ap_get_useragent_host(r, REMOTE_DOUBLE_REV,
+                                                   &remotehost_is_ip);
 
                 if ((remotehost == NULL) || remotehost_is_ip) {
                     gothost = 1;
index c7bbbe015d05206d33837e17850c6c6460372285..15f453996e02c24af53920ff4706ce573b91e106 100644 (file)
@@ -169,10 +169,7 @@ static authz_status host_check_authorization(request_rec *r,
     const char *remotehost = NULL;
     int remotehost_is_ip;
 
-    remotehost = ap_get_remote_host(r->connection,
-                                    r->per_dir_config,
-                                    REMOTE_DOUBLE_REV,
-                                    &remotehost_is_ip);
+    remotehost = ap_get_useragent_host(r, REMOTE_DOUBLE_REV, &remotehost_is_ip);
 
     if ((remotehost == NULL) || remotehost_is_ip) {
         ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(01753)
index 8e392a7f01c1840cfd0955196bff7e454c0dd1da..fc8af9889e0836ffe5ad27f9df22726f3c135963 100644 (file)
@@ -1020,8 +1020,7 @@ char *ssl_var_lookup(apr_pool_t *p, server_rec *s, conn_rec *c, request_rec *r,
             else if (strcEQ(var, "REMOTE_ADDR"))
                 result = r->useragent_ip;
             else if (strcEQ(var, "REMOTE_HOST"))
-                result = ap_get_remote_host(r->connection, r->per_dir_config,
-                                            REMOTE_NAME, NULL);
+                result = ap_get_useragent_host(r, REMOTE_NAME, NULL);
             else if (strcEQ(var, "REMOTE_IDENT"))
                 result = ap_get_remote_logname(r);
             else if (strcEQ(var, "REMOTE_USER"))
index 95f1d709463339f66fca5a62341b48567a953553..648958ef456d09a7757631835c908b6f49f7b4d2 100644 (file)
@@ -451,8 +451,7 @@ static void do_rewritelog(request_rec *r, int level, char *perdir,
     if (!APLOG_R_IS_LEVEL(r, APLOG_DEBUG + level))
         return;
 
-    rhost = ap_get_remote_host(r->connection, r->per_dir_config,
-                               REMOTE_NOLOOKUP, NULL);
+    rhost = ap_get_useragent_host(r, REMOTE_NOLOOKUP, NULL);
     rname = ap_get_remote_logname(r);
 
     for (redir=0, req=r; req->prev; req = req->prev) {
index db58b601f3a0f60283d0073f0efa1f3fe942f542..c56ef503187723f558325fa4cb0843d0912a02be 100644 (file)
@@ -531,8 +531,7 @@ static int match_headers(request_rec *r)
                     val = r->connection->local_ip;
                     break;
                 case SPECIAL_REMOTE_HOST:
-                    val =  ap_get_remote_host(r->connection, r->per_dir_config,
-                                              REMOTE_NAME, NULL);
+                    val = ap_get_useragent_host(r, REMOTE_NAME, NULL);
                     break;
                 case SPECIAL_REQUEST_URI:
                     val = r->uri;
index 145bdcfdff445b2579b9898ebbd202ce87a2533e..4f94f7b684788a4c4daeb08d701c8460941fd24a 100644 (file)
@@ -239,7 +239,7 @@ static apr_status_t ajp_marshal_into_msgb(ajp_msg_t *msg,
         num_headers = t->nelts;
     }
 
-    remote_host = (char *)ap_get_remote_host(r->connection, r->per_dir_config, REMOTE_HOST, NULL);
+    remote_host = (char *)ap_get_useragent_host(r, REMOTE_HOST, NULL);
 
     ajp_msg_reset(msg);
 
index 2b6d0aaa33070f148846c68c052ba030b7a9233a..9a9cfded6861f87a98e397920f25f6c4bcbf1fbb 100644 (file)
@@ -295,8 +295,7 @@ char *ssl_var_lookup(apr_pool_t *p, server_rec *s, conn_rec *c, request_rec *r,
             else if (strcEQ(var, "REMOTE_ADDR"))
                 result = r->useragent_ip;
             else if (strcEQ(var, "REMOTE_HOST"))
-                result = ap_get_remote_host(r->connection, r->per_dir_config,
-                                            REMOTE_NAME, NULL);
+                result = ap_get_useragent_host(r, REMOTE_NAME, NULL);
             else if (strcEQ(var, "REMOTE_IDENT"))
                 result = ap_get_remote_logname(r);
             else if (strcEQ(var, "REMOTE_USER"))
index d8428ed98a30a3ebbd3a1cb260e293c99b628fdf..38f5df9d4b69339d4e8575fa4b4ae12dccc6b3d8 100644 (file)
@@ -1476,8 +1476,7 @@ static const char *request_var_fn(ap_expr_eval_ctx_t *ctx, const void *data)
     case 3:
         return r->filename;
     case 4:
-        return ap_get_remote_host(r->connection, r->per_dir_config,
-                                  REMOTE_NAME, NULL);
+        return ap_get_useragent_host(r, REMOTE_NAME, NULL);
     case 5:
         return ap_get_remote_logname(r);
     case 6:
index 37508f81d0c37d0e9db52d1bcfc53506c7a58f32..b6d361222c5ab93be9cdb7f0104fcc9a3850bb12 100644 (file)
@@ -244,7 +244,7 @@ AP_DECLARE(void) ap_add_common_vars(request_rec *r)
     apr_table_addn(e, "SERVER_PORT",
                   apr_psprintf(r->pool, "%u", ap_get_server_port(r)));
     add_unless_null(e, "REMOTE_HOST",
-                    ap_get_remote_host(c, r->per_dir_config, REMOTE_HOST, NULL));
+                    ap_get_useragent_host(r, REMOTE_HOST, NULL));
     apr_table_addn(e, "REMOTE_ADDR", r->useragent_ip);
     apr_table_addn(e, "DOCUMENT_ROOT", ap_document_root(r));    /* Apache */
     apr_table_setn(e, "REQUEST_SCHEME", ap_http_scheme(r));