Commit cedf22ca authored by Jim Jagielski's avatar Jim Jagielski
Browse files

Fix PR54848 in a 2.4.x backportable format. Ideally deprecating the use

of ->client in whatever version of 2.4 this is added into would be
more logical.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1837225 13f79535-47bb-0310-9956-ffa450edef68
parent 6aef9437
Loading
Loading
Loading
Loading
+3 −1
Changes for CHANGES: 3 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -551,7 +551,9 @@ Changes with Apache 2.5.0-alpha

  *) mod_status, mod_echo: Fix the display of client addresses.
     They were truncated to 31 characters which is not enough for IPv6 addresses.
     PR 54848 [Bernhard Schmidt <berni birkenwald de>]
     This is done by deprecating the use of the 'client' field and using
     the new 'client64' field in worker_score.
     PR 54848 [Bernhard Schmidt <berni birkenwald de>, Jim Jagielski]

  *) core: merge AllowEncodedSlashes from the base configuration into
     virtual hosts. [Eric Covener]
+2 −1
Changes for include/scoreboard.h: 2 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -112,10 +112,11 @@ struct worker_score {
#ifdef HAVE_TIMES
    struct tms times;
#endif
    char client[40];            /* Keep 'em small... but large enough to hold an IPv6 address */
    char client[32];            /* DEPRECATED: Keep 'em small... */
    char request[64];           /* We just want an idea... */
    char vhost[32];             /* What virtual host is being accessed? */
    char protocol[16];          /* What protocol is used on the connection? */
    char client64[64];
};

typedef struct {
+2 −2
Changes for modules/echo/mod_echo.c: 2 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -108,10 +108,10 @@ static int update_echo_child_status(ap_sb_handle_t *sbh,

    /* initial pass only, please - in the name of efficiency */
    if (c) {
        apr_cpystrn(ws->client,
        apr_cpystrn(ws->client64,
                    ap_get_remote_host(c, c->base_server->lookup_defaults,
                                       REMOTE_NOLOOKUP, NULL),
                    sizeof(ws->client));
                    sizeof(ws->client64));
        apr_cpystrn(ws->vhost, c->base_server->server_hostname,
                    sizeof(ws->vhost));
        /* Deliberate trailing space - filling in string on WRITE passes */
+2 −2
Changes for modules/experimental/mod_noloris.c: 2 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -122,13 +122,13 @@ static int noloris_monitor(apr_pool_t *pool, server_rec *s)
        for (j = 0; j < thread_limit; ++j) {
            ws = ap_get_scoreboard_worker_from_indexes(i, j);
            if (ws->status == SERVER_BUSY_READ) {
                n = apr_hash_get(connections, ws->client, APR_HASH_KEY_STRING);
                n = apr_hash_get(connections, ws->client64, APR_HASH_KEY_STRING);
                if (n == NULL) {
                    n = totals + index++;
                    *n = 0;
                }
                ++*n;
                apr_hash_set(connections, ws->client, APR_HASH_KEY_STRING, n);
                apr_hash_set(connections, ws->client64, APR_HASH_KEY_STRING, n);
            }
        }
    }
+2 −2
Changes for modules/generators/mod_status.c: 2 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -801,7 +801,7 @@ static int status_handler(request_rec *r)
                    ap_rprintf(r,
                               " <i>%s {%s}</i> <i>(%s)</i> <b>[%s]</b><br />\n\n",
                               ap_escape_html(r->pool,
                                              ws_record->client),
                                              ws_record->client64),
                               ap_escape_html(r->pool,
                                              ap_escape_logitem(r->pool,
                                                                ws_record->request)),
@@ -888,7 +888,7 @@ static int status_handler(request_rec *r)
                    ap_rprintf(r, "</td><td>%s</td><td>%s</td><td nowrap>%s</td>"
                                  "<td nowrap>%s</td></tr>\n\n",
                               ap_escape_html(r->pool,
                                              ws_record->client),
                                              ws_record->client64),
                               ap_escape_html(r->pool,
                                              ws_record->protocol),
                               ap_escape_html(r->pool,
Loading