From: Eric Covener Date: Thu, 29 Dec 2016 18:31:13 +0000 (+0000) Subject: PR59938: add %{REMOTE_PORT} to the expression parser X-Git-Tag: 2.5.0-alpha~854 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b3531c422d1e7a5dfbd149d6fddc43ba4e51ccef;p=thirdparty%2Fapache%2Fhttpd.git PR59938: add %{REMOTE_PORT} to the expression parser Submitted By: Hank Ibell git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1776459 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 1de27cba17a..a5f089c6e9a 100644 --- a/CHANGES +++ b/CHANGES @@ -1,5 +1,8 @@ -*- coding: utf-8 -*- Changes with Apache 2.5.0 + + *) core: Add %{REMOTE_PORT} to the expression parser. PR59938 + [Hank Ibell ] *) mod_remoteip: When overriding the useragent address from X-Forwarded-For, zero out what had been initialized as the connection-level port. PR59931. diff --git a/docs/manual/expr.xml b/docs/manual/expr.xml index 159142f5e05..17a36c6b006 100644 --- a/docs/manual/expr.xml +++ b/docs/manual/expr.xml @@ -230,6 +230,8 @@ listfunction ::= listfuncname "(" word ")" "GET /index.html HTTP/1.1") REMOTE_ADDR The IP address of the remote host + REMOTE_PORT + The port of the remote host REMOTE_HOST The host name of the remote host REMOTE_USER diff --git a/server/util_expr_eval.c b/server/util_expr_eval.c index 7d2f2669ac2..e08c4d2ac19 100644 --- a/server/util_expr_eval.c +++ b/server/util_expr_eval.c @@ -1456,6 +1456,7 @@ static const char *request_var_names[] = { "SERVER_PROTOCOL_VERSION", /* 29 */ "SERVER_PROTOCOL_VERSION_MAJOR", /* 30 */ "SERVER_PROTOCOL_VERSION_MINOR", /* 31 */ + "REMOTE_PORT", /* 32 */ NULL }; @@ -1562,6 +1563,8 @@ static const char *request_var_fn(ap_expr_eval_ctx_t *ctx, const void *data) case 9: return "9"; } return apr_psprintf(ctx->p, "%d", HTTP_VERSION_MINOR(r->proto_num)); + case 32: + return apr_psprintf(ctx->p, "%u", ctx->c->client_addr->port); default: ap_assert(0); return NULL;