##
## Annotated patch file: eapi.patch
## Copyright (c) 1998-2001 Ralf S. Engelschall, All Rights Reserved.
-## Created on: 18-Oct-2005
+## Created on: 28-Jul-2006
##
## This file assembles changes to existing Apache source files
## between the original Apache and the patched variant. It can be
| Patch in implementation of the EAPI rule.
+---------------------------------------------------------------------------
Index: src/Configure
---- src/Configure 18 Oct 2005 06:26:22 -0000 1.1.1.26
-+++ src/Configure 18 Oct 2005 06:27:34 -0000 1.29
-@@ -1867,6 +1867,72 @@
+--- src/Configure 28 Jul 2006 13:55:21 -0000 1.1.1.29
++++ src/Configure 28 Jul 2006 13:56:29 -0000 1.32
+@@ -1868,6 +1868,72 @@
fi
####################################################################
| EAPI-aware modules and standard modules.
+---------------------------------------------------------------------------
Index: src/include/ap_mmn.h
---- src/include/ap_mmn.h 18 Oct 2005 06:26:23 -0000 1.1.1.14
-+++ src/include/ap_mmn.h 18 Oct 2005 06:27:34 -0000 1.14
-@@ -206,7 +206,23 @@
+--- src/include/ap_mmn.h 28 Jul 2006 13:55:31 -0000 1.1.1.15
++++ src/include/ap_mmn.h 28 Jul 2006 13:56:29 -0000 1.15
+@@ -207,7 +207,23 @@
* 19990320.18 - trace_enable member added to core server_config
*/
| shared memory pools.
+---------------------------------------------------------------------------
Index: src/include/ap_alloc.h
---- src/include/ap_alloc.h 11 May 2004 18:28:11 -0000 1.1.1.7
-+++ src/include/ap_alloc.h 11 May 2004 18:32:15 -0000 1.8
-@@ -52,6 +52,15 @@
+--- src/include/ap_alloc.h 28 Jul 2006 13:55:32 -0000 1.1.1.9
++++ src/include/ap_alloc.h 28 Jul 2006 13:56:29 -0000 1.10
+@@ -53,6 +53,15 @@
API_EXPORT(pool *) ap_init_alloc(void); /* Set up everything */
void ap_cleanup_alloc(void);
API_EXPORT(pool *) ap_make_sub_pool(pool *); /* All pools are subpools of permanent_pool */
| Add the additional context variable `ctx' for BUFF structures.
+---------------------------------------------------------------------------
Index: src/include/buff.h
---- src/include/buff.h 11 May 2004 18:28:12 -0000 1.1.1.8
-+++ src/include/buff.h 11 May 2004 18:32:15 -0000 1.12
-@@ -82,6 +82,10 @@
+--- src/include/buff.h 28 Jul 2006 13:55:31 -0000 1.1.1.9
++++ src/include/buff.h 28 Jul 2006 13:56:29 -0000 1.13
+@@ -83,6 +83,10 @@
/* transport handle, for RPC binding handle or some such */
void *t_handle;
#ifdef B_SFIO
Sfio_t *sf_in;
Sfio_t *sf_out;
-@@ -138,6 +142,10 @@
+@@ -139,6 +143,10 @@
API_EXPORT(int) ap_bflsbuf(int c, BUFF *fb);
API_EXPORT(int) ap_bfilbuf(BUFF *fb);
| Add the four additional Apache API module hooks.
+---------------------------------------------------------------------------
Index: src/include/http_config.h
---- src/include/http_config.h 11 May 2004 18:28:12 -0000 1.1.1.12
-+++ src/include/http_config.h 11 May 2004 18:32:15 -0000 1.14
-@@ -233,6 +233,65 @@
+--- src/include/http_config.h 28 Jul 2006 13:55:31 -0000 1.1.1.15
++++ src/include/http_config.h 28 Jul 2006 13:56:29 -0000 1.17
+@@ -234,6 +234,65 @@
void (*child_exit) (server_rec *, pool *);
#endif
int (*post_read_request) (request_rec *);
| global module context.
+---------------------------------------------------------------------------
Index: src/include/http_conf_globals.h
---- src/include/http_conf_globals.h 11 May 2004 18:28:12 -0000 1.1.1.14
-+++ src/include/http_conf_globals.h 11 May 2004 18:32:15 -0000 1.15
-@@ -52,6 +52,9 @@
+--- src/include/http_conf_globals.h 28 Jul 2006 13:55:30 -0000 1.1.1.15
++++ src/include/http_conf_globals.h 28 Jul 2006 13:56:29 -0000 1.16
+@@ -53,6 +53,9 @@
#endif
extern int ap_dump_settings;
extern API_VAR_EXPORT int ap_extended_status;
| function.
+---------------------------------------------------------------------------
Index: src/include/httpd.h
---- src/include/httpd.h 18 Oct 2005 06:26:24 -0000 1.1.1.26
-+++ src/include/httpd.h 18 Oct 2005 06:27:34 -0000 1.36
-@@ -27,7 +27,19 @@
+--- src/include/httpd.h 28 Jul 2006 13:55:32 -0000 1.1.1.29
++++ src/include/httpd.h 28 Jul 2006 13:56:29 -0000 1.39
+@@ -28,7 +28,19 @@
/* Headers in which EVERYONE has an interest... */
#include "ap_config.h"
#include "buff.h"
#include "ap.h"
-@@ -102,8 +114,13 @@
+@@ -103,8 +115,13 @@
#define ap_http_method(r) ap_os_http_method((void*)r)
#define ap_default_port(r) ap_os_default_port((void*)r)
#else
#endif
/* --------- Default user name and group name running standalone ---------- */
-@@ -312,6 +329,19 @@
+@@ -313,6 +330,19 @@
#define SCOREBOARD_MAINTENANCE_INTERVAL 1000000
#endif
/* Number of requests to try to handle in a single process. If <= 0,
* the children don't die off. That's the default here, since I'm still
* interested in finding and stanching leaks.
-@@ -404,6 +434,9 @@
+@@ -405,6 +435,9 @@
API_EXPORT(const char *) ap_get_server_version(void);
API_EXPORT(void) ap_add_version_component(const char *component);
API_EXPORT(const char *) ap_get_server_built(void);
/* Numeric release version identifier: MMNNFFRBB: major minor fix final beta
* Always increases along the same track as the source branch.
-@@ -807,6 +840,10 @@
+@@ -808,6 +841,10 @@
* record to improve 64bit alignment the next time we need to break
* binary compatibility for some other reason.
*/
};
-@@ -855,6 +892,9 @@
+@@ -856,6 +893,9 @@
char *local_host; /* used for ap_get_server_name when
* UseCanonicalName is set to DNS
* (ignores setting of HostnameLookups) */
};
/* Per-vhost config... */
-@@ -927,6 +967,10 @@
+@@ -928,6 +968,10 @@
int limit_req_line; /* limit on size of the HTTP request line */
int limit_req_fieldsize; /* limit on size of any request header field */
int limit_req_fields; /* limit on number of request header fields */
| Patch the shared memory pool support into the Apache pool facility.
+---------------------------------------------------------------------------
Index: src/main/alloc.c
---- src/main/alloc.c 22 Oct 2004 10:15:50 -0000 1.1.1.17
-+++ src/main/alloc.c 22 Oct 2004 10:18:59 -0000 1.26
-@@ -21,6 +21,10 @@
+--- src/main/alloc.c 28 Jul 2006 13:55:33 -0000 1.1.1.18
++++ src/main/alloc.c 28 Jul 2006 13:56:29 -0000 1.27
+@@ -22,6 +22,10 @@
*/
#include "httpd.h"
#include "multithread.h"
#include "http_log.h"
-@@ -95,6 +99,10 @@
+@@ -96,6 +100,10 @@
#define BLOCK_MINALLOC 0
#endif
/*****************************************************************
*
* Managing free storage blocks...
-@@ -123,6 +131,9 @@
+@@ -124,6 +132,9 @@
char *endp;
union block_hdr *next;
char *first_avail;
#ifdef POOL_DEBUG
union block_hdr *global_next;
struct pool *owning_pool;
-@@ -173,7 +184,11 @@
+@@ -174,7 +185,11 @@
/* Get a completely new block from the system pool. Note that we rely on
malloc() to provide aligned memory. */
{
union block_hdr *blok;
int request_size;
-@@ -189,6 +204,11 @@
+@@ -190,6 +205,11 @@
num_malloc_bytes += size + sizeof(union block_hdr);
#endif
request_size = size + sizeof(union block_hdr);
blok = (union block_hdr *) malloc(request_size);
if (blok == NULL) {
fprintf(stderr, "Ouch! malloc(%d) failed in malloc_block()\n",
-@@ -196,6 +216,9 @@
+@@ -197,6 +217,9 @@
exit(1);
}
debug_fill(blok, size + sizeof(union block_hdr));
blok->h.next = NULL;
blok->h.first_avail = (char *) (blok + 1);
blok->h.endp = size + blok->h.first_avail;
-@@ -256,6 +279,10 @@
+@@ -257,6 +280,10 @@
if (blok == NULL)
return; /* Sanity check --- freeing empty pool? */
(void) ap_acquire_mutex(alloc_mutex);
old_free_list = block_freelist;
block_freelist = blok;
-@@ -302,6 +329,10 @@
+@@ -303,6 +330,10 @@
#endif
(void) ap_release_mutex(alloc_mutex);
#endif
}
-@@ -310,7 +341,11 @@
+@@ -311,7 +342,11 @@
* if necessary. Must be called with alarms blocked.
*/
{
union block_hdr **lastptr = &block_freelist;
union block_hdr *blok = block_freelist;
-@@ -320,7 +355,12 @@
+@@ -321,7 +356,12 @@
*/
while (blok != NULL) {
*lastptr = blok->h.next;
blok->h.next = NULL;
debug_verify_filled(blok->h.first_avail, blok->h.endp,
-@@ -336,7 +376,11 @@
+@@ -337,7 +377,11 @@
/* Nope. */
min_size += BLOCK_MINFREE;
return blok;
}
-@@ -386,6 +430,9 @@
+@@ -387,6 +431,9 @@
#ifdef POOL_DEBUG
struct pool *joined;
#endif
};
static pool *permanent_pool;
-@@ -400,16 +447,28 @@
+@@ -401,16 +448,28 @@
#define POOL_HDR_CLICKS (1 + ((sizeof(struct pool) - 1) / CLICK_SZ))
#define POOL_HDR_BYTES (POOL_HDR_CLICKS * CLICK_SZ)
new_pool = (pool *) blok->h.first_avail;
blok->h.first_avail += POOL_HDR_BYTES;
#ifdef POOL_DEBUG
-@@ -428,12 +487,38 @@
+@@ -429,12 +488,38 @@
p->sub_pools = new_pool;
}
#ifdef POOL_DEBUG
static void stack_var_init(char *s)
{
-@@ -448,6 +533,13 @@
+@@ -449,6 +534,13 @@
}
#endif
#ifdef ALLOC_STATS
static void dump_stats(void)
{
-@@ -480,6 +572,58 @@
+@@ -481,6 +573,58 @@
return permanent_pool;
}
void ap_cleanup_alloc(void)
{
ap_destroy_mutex(alloc_mutex);
-@@ -490,10 +634,18 @@
+@@ -491,10 +635,18 @@
{
ap_block_alarms();
/* Don't hold the mutex during cleanups. */
run_cleanups(a->cleanups);
a->cleanups = NULL;
-@@ -527,6 +679,10 @@
+@@ -528,6 +680,10 @@
ap_block_alarms();
ap_clear_pool(a);
(void) ap_acquire_mutex(alloc_mutex);
if (a->parent) {
if (a->parent->sub_pools == a)
-@@ -537,6 +693,10 @@
+@@ -538,6 +694,10 @@
a->sub_next->sub_prev = a->sub_prev;
}
(void) ap_release_mutex(alloc_mutex);
free_blocks(a->first);
ap_unblock_alarms();
-@@ -551,6 +711,30 @@
+@@ -552,6 +712,30 @@
return bytes_in_block_list(block_freelist);
}
/*****************************************************************
* POOL_DEBUG support
*/
-@@ -716,16 +900,31 @@
+@@ -717,16 +901,31 @@
ap_block_alarms();
ap_unblock_alarms();
-@@ -842,6 +1041,11 @@
+@@ -843,6 +1042,11 @@
size = cur_len << 1;
if (size < AP_PSPRINTF_MIN_SIZE)
size = AP_PSPRINTF_MIN_SIZE;
ptr = realloc(ps->base, size);
if (ptr == NULL) {
fputs("Ouch! Out of memory!\n", stderr);
-@@ -865,9 +1069,21 @@
+@@ -866,9 +1070,21 @@
size = AP_PSPRINTF_MIN_SIZE;
/* must try another blok */
memcpy(nblok->h.first_avail, blok->h.first_avail, cur_len);
ps->vbuff.curpos = nblok->h.first_avail + cur_len;
/* save a byte for the NUL terminator */
-@@ -876,10 +1092,18 @@
+@@ -877,10 +1093,18 @@
/* did we allocate the current blok? if so free it up */
if (ps->got_a_new_block) {
debug_fill(blok->h.first_avail, blok->h.endp - blok->h.first_avail);
}
ps->blok = nblok;
ps->got_a_new_block = 1;
-@@ -898,6 +1122,11 @@
+@@ -899,6 +1123,11 @@
void *ptr;
ap_block_alarms();
ps.base = malloc(512);
if (ps.base == NULL) {
fputs("Ouch! Out of memory!\n", stderr);
-@@ -910,6 +1139,11 @@
+@@ -911,6 +1140,11 @@
*ps.vbuff.curpos++ = '\0';
ptr = ps.base;
/* shrink */
| modules to intercept the I/O processing via hooks.
+---------------------------------------------------------------------------
Index: src/main/buff.c
---- src/main/buff.c 11 May 2004 18:28:14 -0000 1.1.1.15
-+++ src/main/buff.c 11 May 2004 18:32:15 -0000 1.23
-@@ -250,6 +250,9 @@
+--- src/main/buff.c 28 Jul 2006 13:55:34 -0000 1.1.1.17
++++ src/main/buff.c 28 Jul 2006 13:56:29 -0000 1.25
+@@ -251,6 +251,9 @@
}
else
#endif
rv = read(fb->fd_in, buf, nbyte);
return rv;
-@@ -261,6 +264,9 @@
+@@ -262,6 +265,9 @@
#if defined (WIN32) || defined(NETWARE) || defined(CYGWIN_WINSOCK)
if (fb->flags & B_SOCKET) {
rv = ap_recvwithtimeout(fb->fd_in, buf, nbyte, 0);
if (rv == SOCKET_ERROR)
errno = WSAGetLastError();
-@@ -308,6 +314,9 @@
+@@ -312,6 +318,9 @@
}
else
#endif
#if defined (B_SFIO)
rv = sfwrite(fb->sf_out, buf, nbyte);
#else
-@@ -338,6 +347,9 @@
+@@ -342,6 +351,9 @@
#if defined(WIN32) || defined(NETWARE)
if (fb->flags & B_SOCKET) {
rv = ap_sendwithtimeout(fb->fd, buf, nbyte, 0);
if (rv == SOCKET_ERROR)
errno = WSAGetLastError();
-@@ -421,6 +433,10 @@
+@@ -425,6 +437,10 @@
fb->callback_data = NULL;
fb->filter_callback = NULL;
return fb;
}
-@@ -1073,6 +1089,9 @@
+@@ -1077,6 +1093,9 @@
i = 0;
while (i < nvec) {
do
| variables are initialized.
+---------------------------------------------------------------------------
Index: src/main/http_config.c
---- src/main/http_config.c 22 Oct 2004 10:15:50 -0000 1.1.1.18
-+++ src/main/http_config.c 22 Oct 2004 10:18:59 -0000 1.21
-@@ -557,6 +557,20 @@
+--- src/main/http_config.c 28 Jul 2006 13:55:33 -0000 1.1.1.21
++++ src/main/http_config.c 28 Jul 2006 13:56:29 -0000 1.24
+@@ -558,6 +558,20 @@
m->name = tmp;
}
#endif /*_OSD_POSIX*/
}
/*
-@@ -571,6 +585,21 @@
+@@ -572,6 +586,21 @@
{
module *modp;
modp = top_module;
if (modp == m) {
/* We are the top module, special case */
-@@ -964,6 +993,27 @@
+@@ -965,6 +994,27 @@
const command_rec *cmd;
module *mod = top_module;
if ((l[0] == '#') || (!l[0]))
return NULL;
-@@ -1428,6 +1478,10 @@
+@@ -1429,6 +1479,10 @@
s->limit_req_fieldsize = main_server->limit_req_fieldsize;
s->limit_req_fields = main_server->limit_req_fields;
*ps = s;
return ap_parse_vhost_addrs(p, hostname, s);
-@@ -1539,6 +1593,10 @@
+@@ -1540,6 +1594,10 @@
s->module_config = create_server_config(p, s);
s->lookup_defaults = create_default_per_dir_config(p);
| is added plus the initialization of one more `ctx' variable.
+---------------------------------------------------------------------------
Index: src/main/http_main.c
---- src/main/http_main.c 18 Oct 2005 06:26:25 -0000 1.1.1.24
-+++ src/main/http_main.c 18 Oct 2005 06:27:34 -0000 1.47
-@@ -242,6 +242,9 @@
+--- src/main/http_main.c 28 Jul 2006 13:55:34 -0000 1.1.1.26
++++ src/main/http_main.c 28 Jul 2006 13:56:29 -0000 1.49
+@@ -243,6 +243,9 @@
int ap_dump_settings = 0;
API_VAR_EXPORT int ap_extended_status = 0;
/*
* The max child slot ever assigned, preserved across restarts. Necessary
-@@ -435,6 +438,30 @@
+@@ -436,6 +439,30 @@
}
}
#ifndef NETWARE
static APACHE_TLS int volatile exit_after_unblock = 0;
#endif
-@@ -1543,6 +1570,9 @@
+@@ -1551,6 +1578,9 @@
}
ap_bsetflag(save_req->connection->client, B_EOUT, 1);
ap_bclose(save_req->connection->client);
if (!ap_standalone)
-@@ -1551,6 +1581,9 @@
+@@ -1559,6 +1589,9 @@
}
else { /* abort the connection */
ap_bsetflag(current_conn->client, B_EOUT, 1);
ap_bclose(current_conn->client);
current_conn->aborted = 1;
}
-@@ -1852,10 +1885,16 @@
+@@ -1880,10 +1913,16 @@
/* Send any leftover data to the client, but never try to again */
if (ap_bflush(r->connection->client) == -1) {
ap_bsetflag(r->connection->client, B_EOUT, 1);
/* Close our half of the connection --- send the client a FIN */
-@@ -2554,6 +2593,9 @@
+@@ -2582,6 +2621,9 @@
/* Clear the pool - including any registered cleanups */
ap_destroy_pool(pglobal);
#endif
exit(code);
}
-@@ -3624,6 +3666,24 @@
+@@ -3655,6 +3697,24 @@
conn->remote_addr = *remaddr;
conn->remote_ip = ap_pstrdup(conn->pool,
inet_ntoa(conn->remote_addr.sin_addr));
return conn;
}
-@@ -4134,6 +4194,15 @@
+@@ -4165,6 +4225,15 @@
printf("Server's Module Magic Number: %u:%u\n",
MODULE_MAGIC_NUMBER_MAJOR, MODULE_MAGIC_NUMBER_MINOR);
printf("Server compiled with....\n");
#ifdef TPF
show_os_specific_compile_settings();
#endif
-@@ -4308,6 +4377,22 @@
+@@ -4339,6 +4408,22 @@
ap_server_pre_read_config = ap_make_array(pcommands, 1, sizeof(char *));
ap_server_post_read_config = ap_make_array(pcommands, 1, sizeof(char *));
ap_server_config_defines = ap_make_array(pcommands, 1, sizeof(char *));
}
#ifndef MULTITHREAD
-@@ -4809,6 +4894,9 @@
+@@ -4835,6 +4920,9 @@
ap_sync_scoreboard_image();
if (ap_scoreboard_image->global.running_generation != ap_my_generation) {
ap_bclose(conn_io);
clean_child_exit(0);
}
-@@ -4837,6 +4925,9 @@
+@@ -4863,6 +4951,9 @@
*/
#ifdef NO_LINGCLOSE
ap_bclose(conn_io); /* just close it */
#else
if (r && r->connection
-@@ -4847,6 +4938,9 @@
+@@ -4873,6 +4964,9 @@
lingering_close(r);
}
else {
ap_bsetflag(conn_io, B_EOUT, 1);
ap_bclose(conn_io);
}
-@@ -5630,16 +5724,31 @@
+@@ -5656,16 +5750,31 @@
usage(argv[0]);
}
}
}
child_timeouts = !ap_standalone || one_process;
-@@ -5787,6 +5896,10 @@
+@@ -5813,6 +5922,10 @@
ap_destroy_pool(r->pool);
}
ap_bclose(cio);
}
exit(0);
-@@ -6163,6 +6276,9 @@
+@@ -6189,6 +6302,9 @@
ap_kill_cleanups_for_socket(ptrans, csd);
#ifdef NO_LINGCLOSE
ap_bclose(conn_io); /* just close it */
#else
if (r && r->connection
-@@ -6173,6 +6289,9 @@
+@@ -6199,6 +6315,9 @@
lingering_close(r);
}
else {
ap_bsetflag(conn_io, B_EOUT, 1);
ap_bclose(conn_io);
}
-@@ -7748,6 +7867,10 @@
+@@ -7774,6 +7893,10 @@
if (!conf_specified)
ap_cpystrn(ap_server_confname, SERVER_CONFIG_FILE, sizeof(ap_server_confname));
if (!ap_os_is_path_absolute(ap_server_confname))
ap_cpystrn(ap_server_confname,
ap_server_root_relative(pcommands, ap_server_confname),
-@@ -7788,6 +7911,9 @@
+@@ -7814,6 +7937,9 @@
#else /* ndef WIN32 */
server_conf = ap_read_config(pconf, ptrans, ap_server_confname);
#endif
| conn_rec structures.
+---------------------------------------------------------------------------
Index: src/main/http_request.c
---- src/main/http_request.c 22 Oct 2004 10:15:57 -0000 1.1.1.19
-+++ src/main/http_request.c 22 Oct 2004 10:18:59 -0000 1.19
-@@ -1372,6 +1372,10 @@
+--- src/main/http_request.c 28 Jul 2006 13:55:34 -0000 1.1.1.20
++++ src/main/http_request.c 28 Jul 2006 13:56:29 -0000 1.20
+@@ -1373,6 +1373,10 @@
new->method = r->method;
new->method_number = r->method_number;
| request_rec structures.
+---------------------------------------------------------------------------
Index: src/main/http_protocol.c
---- src/main/http_protocol.c 18 Oct 2005 06:26:26 -0000 1.1.1.22
-+++ src/main/http_protocol.c 18 Oct 2005 06:27:34 -0000 1.22
-@@ -1172,6 +1172,10 @@
+--- src/main/http_protocol.c 28 Jul 2006 13:55:34 -0000 1.1.1.24
++++ src/main/http_protocol.c 28 Jul 2006 13:56:29 -0000 1.24
+@@ -1173,6 +1173,10 @@
r->status = HTTP_REQUEST_TIME_OUT; /* Until we get a request */
r->the_request = NULL;
#ifdef CHARSET_EBCDIC
ap_bsetflag(r->connection->client, B_ASCII2EBCDIC, r->ebcdic.conv_in = 1);
ap_bsetflag(r->connection->client, B_EBCDIC2ASCII, r->ebcdic.conv_out = 1);
-@@ -1340,6 +1344,11 @@
+@@ -1341,6 +1345,11 @@
rnew->read_body = REQUEST_NO_BODY;
rnew->main = (request_rec *) r;
| Add support for loading both EAPI and AP13 modules.
+---------------------------------------------------------------------------
Index: src/modules/standard/mod_so.c
---- src/modules/standard/mod_so.c 22 Oct 2004 10:15:57 -0000 1.1.1.12
-+++ src/modules/standard/mod_so.c 22 Oct 2004 10:18:59 -0000 1.13
-@@ -266,11 +266,24 @@
+--- src/modules/standard/mod_so.c 28 Jul 2006 13:55:28 -0000 1.1.1.13
++++ src/modules/standard/mod_so.c 28 Jul 2006 13:56:29 -0000 1.14
+@@ -267,11 +267,24 @@
* Make sure the found module structure is really a module structure
*
*/
| one hook for creating new %x tags at all.
+---------------------------------------------------------------------------
Index: src/modules/standard/mod_log_config.c
---- src/modules/standard/mod_log_config.c 11 May 2004 18:28:20 -0000 1.1.1.15
-+++ src/modules/standard/mod_log_config.c 11 May 2004 18:32:16 -0000 1.28
-@@ -220,6 +220,9 @@
+--- src/modules/standard/mod_log_config.c 28 Jul 2006 13:55:27 -0000 1.1.1.16
++++ src/modules/standard/mod_log_config.c 28 Jul 2006 13:56:29 -0000 1.29
+@@ -221,6 +221,9 @@
typedef const char *(*item_key_func) (request_rec *, char *);
typedef struct {
item_key_func func;
char *arg;
int condition_sense;
-@@ -541,15 +544,36 @@
+@@ -542,15 +545,36 @@
}
};
return NULL;
}
-@@ -675,7 +699,11 @@
+@@ -676,7 +700,11 @@
break;
default:
if (!l) {
char dummy[2];
-@@ -684,6 +712,9 @@
+@@ -685,6 +713,9 @@
return ap_pstrcat(p, "Unrecognized LogFormat directive %",
dummy, NULL);
}
it->func = l->func;
if (it->want_orig == -1) {
it->want_orig = l->want_orig_default;
-@@ -745,6 +776,15 @@
+@@ -746,6 +777,15 @@
/* We do. Do it... */
| variables from other modules.
+---------------------------------------------------------------------------
Index: src/modules/standard/mod_rewrite.c
---- src/modules/standard/mod_rewrite.c 30 Oct 2004 13:42:28 -0000 1.1.1.21
-+++ src/modules/standard/mod_rewrite.c 30 Oct 2004 13:44:00 -0000 1.19
-@@ -3863,6 +3863,15 @@
+--- src/modules/standard/mod_rewrite.c 28 Jul 2006 13:55:29 -0000 1.1.1.22
++++ src/modules/standard/mod_rewrite.c 28 Jul 2006 13:56:29 -0000 1.20
+@@ -3864,6 +3864,15 @@
}
#endif /* ndef WIN32 && NETWARE*/
| the status HTML page.
+---------------------------------------------------------------------------
Index: src/modules/standard/mod_status.c
---- src/modules/standard/mod_status.c 11 May 2004 18:28:20 -0000 1.1.1.16
-+++ src/modules/standard/mod_status.c 11 May 2004 18:32:16 -0000 1.13
-@@ -651,12 +677,23 @@
+--- src/modules/standard/mod_status.c 28 Jul 2006 13:55:27 -0000 1.1.1.17
++++ src/modules/standard/mod_status.c 28 Jul 2006 13:56:29 -0000 1.14
+@@ -652,12 +678,23 @@
ap_rprintf(r,
"<td>?<td nowrap>?<td nowrap>..reading.. </tr>\n\n");
else
| recognize more schemes by intercepting this processing.
+---------------------------------------------------------------------------
Index: src/modules/proxy/mod_proxy.c
---- src/modules/proxy/mod_proxy.c 18 Oct 2005 06:26:27 -0000 1.1.1.15
-+++ src/modules/proxy/mod_proxy.c 18 Oct 2005 06:27:34 -0000 1.22
-@@ -176,6 +176,9 @@
+--- src/modules/proxy/mod_proxy.c 28 Jul 2006 13:55:25 -0000 1.1.1.16
++++ src/modules/proxy/mod_proxy.c 28 Jul 2006 13:56:29 -0000 1.23
+@@ -177,6 +177,9 @@
static int proxy_fixup(request_rec *r)
{
char *url, *p;
if (r->proxyreq == NOT_PROXY || strncmp(r->filename, "proxy:", 6) != 0)
return DECLINED;
-@@ -183,6 +186,14 @@
+@@ -184,6 +187,14 @@
url = &r->filename[6];
/* canonicalise each specific scheme */
if (strncasecmp(url, "http:", 5) == 0)
return ap_proxy_http_canon(r, url + 5, "http", DEFAULT_HTTP_PORT);
else if (strncasecmp(url, "ftp:", 4) == 0)
-@@ -198,9 +209,44 @@
+@@ -199,9 +210,44 @@
static void proxy_init(server_rec *r, pool *p)
{
ap_proxy_garbage_init(r, p);
/* Send a redirection if the request contains a hostname which is not */
/* fully qualified, i.e. doesn't have a domain name appended. Some proxy */
-@@ -364,6 +410,14 @@
+@@ -365,6 +411,14 @@
* CONNECT is a special method that bypasses the normal proxy
* code.
*/
if (r->method_number == M_CONNECT)
rc = ap_proxy_connect_handler(r, cr, url, ents[i].hostname,
ents[i].port);
-@@ -373,6 +427,9 @@
+@@ -374,6 +428,9 @@
ents[i].port);
else
rc = DECLINED;
/* an error or success */
if (rc != DECLINED && rc != HTTP_BAD_GATEWAY)
-@@ -387,6 +444,14 @@
+@@ -388,6 +445,14 @@
*/
/* handle the scheme */
if (r->method_number == M_CONNECT) {
return ap_proxy_connect_handler(r, cr, url, NULL, 0);
}
-@@ -984,4 +1049,10 @@
+@@ -985,4 +1050,10 @@
NULL, /* child_init */
NULL, /* child_exit */
proxy_detect /* post read-request */
| to enhance it by intercepting this processing.
+---------------------------------------------------------------------------
Index: src/modules/proxy/proxy_http.c
---- src/modules/proxy/proxy_http.c 18 Oct 2005 06:26:27 -0000 1.1.1.19
-+++ src/modules/proxy/proxy_http.c 18 Oct 2005 06:27:34 -0000 1.27
-@@ -127,6 +127,9 @@
+--- src/modules/proxy/proxy_http.c 28 Jul 2006 13:55:25 -0000 1.1.1.20
++++ src/modules/proxy/proxy_http.c 28 Jul 2006 13:56:29 -0000 1.28
+@@ -128,6 +128,9 @@
const char *datestr, *urlstr;
int result, major, minor;
const char *content_length;
void *sconf = r->server->module_config;
proxy_server_conf *conf =
-@@ -148,6 +151,12 @@
+@@ -149,6 +152,12 @@
return HTTP_BAD_REQUEST;
urlptr += 3;
destport = DEFAULT_HTTP_PORT;
strp = strchr(urlptr, '/');
if (strp == NULL) {
desthost = ap_pstrdup(p, urlptr);
-@@ -185,12 +194,18 @@
+@@ -186,12 +195,18 @@
err = ap_proxy_host2addr(proxyhost, &server_hp);
if (err != NULL)
return DECLINED; /* try another */
}
-@@ -275,14 +290,42 @@
+@@ -276,14 +291,42 @@
f = ap_bcreate(p, B_RDWR | B_SOCKET);
ap_bpushfd(f, sock, sock);
| Add EAPI hooks in module structure for APXS generated samples.
+---------------------------------------------------------------------------
Index: src/support/apxs.pl
---- src/support/apxs.pl 11 May 2004 18:28:26 -0000 1.1.1.14
-+++ src/support/apxs.pl 11 May 2004 18:32:16 -0000 1.14
-@@ -752,5 +752,11 @@
+--- src/support/apxs.pl 28 Jul 2006 13:55:24 -0000 1.1.1.15
++++ src/support/apxs.pl 28 Jul 2006 13:56:29 -0000 1.15
+@@ -753,5 +753,11 @@
NULL, /* child_init */
NULL, /* child_exit */
NULL /* [#0] post read-request */