Commit d9374cf4 authored by Graham Leggett's avatar Graham Leggett
Browse files

Support IPv6-sized client strings in mod_status and mod_echo

parent ecbe118f
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -3,6 +3,12 @@ Changes with Apache 2.4.36

Changes with Apache 2.4.35

  *) mod_status, mod_echo: Fix the display of client addresses.
    They were truncated to 31 characters which is not enough for IPv6 addresses.
    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]

  *) http: Enforce consistently no response body with both 204 and 304
     statuses.  [Yann Ylavic]

+0 −6
Original line number Diff line number Diff line
@@ -124,12 +124,6 @@ RELEASE SHOWSTOPPERS:
PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
  [ start all new proposals below, under PATCHES PROPOSED. ]

   *) Support IPv6-sized client strings in mod_status and mod_echo
      trunk: http://svn.apache.org/r1837225
             http://svn.apache.org/r1837366
      2.4.x patch: http://home.apache.org/~jim/patches/client64v2.patch
      +1: jim, icing (by inspection), minfrin



PATCHES PROPOSED TO BACKPORT FROM TRUNK:
+2 −1
Original line number Diff line number Diff line
@@ -522,6 +522,7 @@
 *                          scoreboard.h
 * 20120211.82 (2.4.35-dev) Add optional function declaration for
 *                          ap_proxy_balancer_get_best_worker to mod_proxy.h.
 * 20120211.83 (2.4.35-dev) Add client64 field to worker_score struct
 *
 */

@@ -530,7 +531,7 @@
#ifndef MODULE_MAGIC_NUMBER_MAJOR
#define MODULE_MAGIC_NUMBER_MAJOR 20120211
#endif
#define MODULE_MAGIC_NUMBER_MINOR 82                  /* 0...n */
#define MODULE_MAGIC_NUMBER_MINOR 83                  /* 0...n */

/**
 * Determine if the server's current MODULE_MAGIC_NUMBER is at least a
+2 −1
Original line number Diff line number Diff line
@@ -112,11 +112,12 @@ struct worker_score {
#ifdef HAVE_TIMES
    struct tms times;
#endif
    char client[32];            /* Keep 'em small... */
    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? */
    apr_time_t duration;
    char client64[64];
};

typedef struct {
+2 −2
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 */
Loading