]> git.pld-linux.org Git - packages/apache.git/blobdiff - apache-mod_ssl-eapi.patch
- updated eapi patch from mod_ssl-2.8.24-1.3.33 (connection timeout handling fix)
[packages/apache.git] / apache-mod_ssl-eapi.patch
index c680277fa235bca12c60409c44e5128c4f1aa1d1..d5f9c17f096c4caf96709e0951009e57218cdbb4 100644 (file)
@@ -7,7 +7,7 @@
 ## 
 ## Annotated patch file: eapi.patch
 ## Copyright (c) 1998-2001 Ralf S. Engelschall, All Rights Reserved. 
-## Created on: 16-Oct-2001
+## Created on: 02-Sep-2005
 ##
 ## This file assembles changes to existing Apache source files
 ## between the original Apache and the patched variant. It can be
@@ -24,8 +24,8 @@
 | patches and configured the shared memory support via the MM library.
 +---------------------------------------------------------------------------
 Index: src/Configuration.tmpl
---- src/Configuration.tmpl     2001/10/16 11:47:06     1.1.1.6
-+++ src/Configuration.tmpl     2001/10/16 11:57:38     1.22
+--- src/Configuration.tmpl     11 May 2004 18:28:09 -0000      1.1.1.8
++++ src/Configuration.tmpl     11 May 2004 18:32:15 -0000      1.24
 @@ -68,6 +105,24 @@
  #TARGET=
  
@@ -56,9 +56,9 @@ Index: src/Configuration.tmpl
 | Patch in implementation of the EAPI rule.
 +---------------------------------------------------------------------------
 Index: src/Configure
---- src/Configure      2001/10/16 11:47:06     1.1.1.16
-+++ src/Configure      2001/10/16 11:57:38     1.18
-@@ -1860,6 +1860,72 @@
+--- src/Configure      30 Oct 2004 13:42:25 -0000      1.1.1.25
++++ src/Configure      30 Oct 2004 13:44:00 -0000      1.28
+@@ -1867,6 +1867,72 @@
  fi
  
  ####################################################################
@@ -79,7 +79,7 @@ Index: src/Configure
 +    esac
 +    #   MM Shared Memory Library support for EAPI
 +    if [ "x$EAPI_MM" = "x" ]; then
-+        EAPI_MM=`egrep '^EAPI_MM=' $file | tail -1 | awk -F= '{print $2}'`
++        EAPI_MM=`egrep '^EAPI_MM=' $file | sed -n -e '$p' | awk -F= '{print $2}'`
 +    fi
 +    if [ "x$EAPI_MM" != "x" ]; then
 +        case $EAPI_MM in
@@ -136,15 +136,14 @@ Index: src/Configure
 | Add the build support for the ap_hook.c and ap_ctx.c sources (Unix)
 +---------------------------------------------------------------------------
 Index: src/ap/Makefile.tmpl
---- src/ap/Makefile.tmpl       2001/05/20 08:16:15     1.1.1.7
-+++ src/ap/Makefile.tmpl       2001/05/20 08:23:01     1.7
-@@ -6,7 +6,8 @@
- LIB=libap.a
+--- src/ap/Makefile.tmpl       19 Jun 2002 07:20:22 -0000      1.1.1.8
++++ src/ap/Makefile.tmpl       19 Jun 2002 07:29:08 -0000      1.8
+@@ -7,7 +7,7 @@
  
  OBJS=ap_cpystrn.o ap_execve.o ap_fnmatch.o ap_getpass.o ap_md5c.o ap_signal.o \
--     ap_slack.o ap_snprintf.o ap_sha1.o ap_checkpass.o ap_base64.o ap_ebcdic.o
-+     ap_slack.o ap_snprintf.o ap_sha1.o ap_checkpass.o ap_base64.o ap_ebcdic.o \
-+     ap_hook.o ap_ctx.o ap_mm.o
+      ap_slack.o ap_snprintf.o ap_sha1.o ap_checkpass.o ap_base64.o ap_ebcdic.o \
+-     ap_strtol.o
++     ap_strtol.o ap_hook.o ap_ctx.o ap_mm.o
  
  .c.o:
        $(CC) -c $(INCLUDES) $(CFLAGS) $<
@@ -153,9 +152,9 @@ Index: src/ap/Makefile.tmpl
 | Add the build support for the ap_hook.c and ap_ctx.c sources (Win32)
 +---------------------------------------------------------------------------
 Index: src/ap/ap.mak
---- src/ap/ap.mak      2001/10/16 11:47:06     1.1.1.9
-+++ src/ap/ap.mak      2001/10/16 11:57:38     1.9
-@@ -50,6 +50,9 @@
+--- src/ap/ap.mak      18 Jul 2003 15:44:30 -0000      1.1.1.10
++++ src/ap/ap.mak      18 Jul 2003 15:56:58 -0000      1.10
+@@ -44,6 +44,9 @@
        -@erase "$(INTDIR)\ap_cpystrn.obj"
        -@erase "$(INTDIR)\ap_fnmatch.obj"
        -@erase "$(INTDIR)\ap_md5c.obj"
@@ -165,7 +164,7 @@ Index: src/ap/ap.mak
        -@erase "$(INTDIR)\ap_sha1.obj"
        -@erase "$(INTDIR)\ap_signal.obj"
        -@erase "$(INTDIR)\ap_slack.obj"
-@@ -108,6 +111,9 @@
+@@ -99,6 +102,9 @@
        "$(INTDIR)\ap_cpystrn.obj" \
        "$(INTDIR)\ap_fnmatch.obj" \
        "$(INTDIR)\ap_md5c.obj" \
@@ -175,7 +174,7 @@ Index: src/ap/ap.mak
        "$(INTDIR)\ap_sha1.obj" \
        "$(INTDIR)\ap_signal.obj" \
        "$(INTDIR)\ap_slack.obj" \
-@@ -144,6 +150,9 @@
+@@ -128,6 +134,9 @@
        -@erase "$(INTDIR)\ap_cpystrn.obj"
        -@erase "$(INTDIR)\ap_fnmatch.obj"
        -@erase "$(INTDIR)\ap_md5c.obj"
@@ -185,7 +184,7 @@ Index: src/ap/ap.mak
        -@erase "$(INTDIR)\ap_sha1.obj"
        -@erase "$(INTDIR)\ap_signal.obj"
        -@erase "$(INTDIR)\ap_slack.obj"
-@@ -202,6 +211,9 @@
+@@ -183,6 +192,9 @@
        "$(INTDIR)\ap_cpystrn.obj" \
        "$(INTDIR)\ap_fnmatch.obj" \
        "$(INTDIR)\ap_md5c.obj" \
@@ -201,10 +200,10 @@ Index: src/ap/ap.mak
 | EAPI-aware modules and standard modules.
 +---------------------------------------------------------------------------
 Index: src/include/ap_mmn.h
---- src/include/ap_mmn.h       2001/01/23 11:35:07     1.1.1.8
-+++ src/include/ap_mmn.h       2001/01/23 11:48:05     1.8
-@@ -233,7 +233,23 @@
-  * 19990320.10          - add ap_is_rdirectory() and ap_stripprefix()
+--- src/include/ap_mmn.h       11 May 2004 18:28:12 -0000      1.1.1.13
++++ src/include/ap_mmn.h       11 May 2004 18:32:15 -0000      1.13
+@@ -205,7 +205,23 @@
+  *                        in core_dir_config.
   */
  
 +/* 
@@ -233,10 +232,10 @@ Index: src/include/ap_mmn.h
 | shared memory pools.
 +---------------------------------------------------------------------------
 Index: src/include/ap_alloc.h
---- src/include/ap_alloc.h     2001/02/28 19:40:47     1.1.1.3
-+++ src/include/ap_alloc.h     2001/02/28 19:44:33     1.4
-@@ -95,6 +95,15 @@
pool * ap_init_alloc(void);           /* Set up everything */
+--- 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 @@
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 */
 +#if defined(EAPI)
@@ -256,9 +255,9 @@ Index: src/include/ap_alloc.h
 | Add the additional context variable `ctx' for BUFF structures.
 +---------------------------------------------------------------------------
 Index: src/include/buff.h
---- src/include/buff.h 2001/01/23 11:35:07     1.1.1.4
-+++ src/include/buff.h 2001/01/23 11:48:05     1.8
-@@ -125,6 +125,10 @@
+--- 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 @@
      /* transport handle, for RPC binding handle or some such */
      void *t_handle;
  
@@ -269,25 +268,25 @@ Index: src/include/buff.h
  #ifdef B_SFIO
      Sfio_t *sf_in;
      Sfio_t *sf_out;
-@@ -176,6 +180,10 @@
- /* Internal routines */
+@@ -138,6 +142,10 @@
  API_EXPORT(int) ap_bflsbuf(int c, BUFF *fb);
  API_EXPORT(int) ap_bfilbuf(BUFF *fb);
-+
 +#ifdef EAPI
 +#define ap_bpeekc(fb) ( ((fb)->incnt == 0) ? EOF : *((fb)->inptr) )
 +#endif
++
  #ifndef CHARSET_EBCDIC
  
+ #define ap_bgetc(fb)   ( ((fb)->incnt == 0) ? ap_bfilbuf(fb) : \
 
 +---------------------------------------------------------------------------
 | Add the four additional Apache API module hooks.
 +---------------------------------------------------------------------------
 Index: src/include/http_config.h
---- src/include/http_config.h  2001/01/23 11:35:07     1.1.1.8
-+++ src/include/http_config.h  2001/01/23 11:48:05     1.10
-@@ -276,6 +276,65 @@
+--- 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 @@
      void (*child_exit) (server_rec *, pool *);
  #endif
      int (*post_read_request) (request_rec *);
@@ -359,9 +358,9 @@ Index: src/include/http_config.h
 | global module context.
 +---------------------------------------------------------------------------
 Index: src/include/http_conf_globals.h
---- src/include/http_conf_globals.h    2001/10/16 11:47:12     1.1.1.9
-+++ src/include/http_conf_globals.h    2001/10/16 11:57:38     1.10
-@@ -95,6 +95,9 @@
+--- 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 @@
  #endif
  extern int ap_dump_settings;
  extern API_VAR_EXPORT int ap_extended_status;
@@ -372,28 +371,6 @@ Index: src/include/http_conf_globals.h
  extern API_VAR_EXPORT char *ap_pid_fname;
  extern API_VAR_EXPORT char *ap_scoreboard_fname;
 
-+---------------------------------------------------------------------------
-| Export the ap_set_callback_and_alarm() function because this
-| first is a useful thing and second we need it because all
-| other API/timeout functions deal with a request_rec while
-| some modules need a generic timeout mechanism.
-+---------------------------------------------------------------------------
-Index: src/include/http_main.h
---- src/include/http_main.h    2001/10/16 11:47:12     1.1.1.6
-+++ src/include/http_main.h    2001/10/16 11:57:38     1.6
-@@ -125,7 +125,11 @@
- API_EXPORT(void) ap_sync_scoreboard_image(void);
- int ap_update_child_status(int child_num, int status, request_rec *r);
- void ap_time_process_request(int child_num, int status);
-+#ifdef EAPI
-+API_EXPORT(unsigned int) ap_set_callback_and_alarm(void (*fn) (int), int x);
-+#else
- unsigned int ap_set_callback_and_alarm(void (*fn) (int), int x);
-+#endif
- API_EXPORT(int) ap_check_alarm(void);
- void setup_signal_names(char *prefix);
-
 +---------------------------------------------------------------------------
 | First add support for the HTTPS protocol scheme via hooks,
 | second add the additional context variable `ctx' for the
@@ -402,9 +379,9 @@ Index: src/include/http_main.h
 | function.
 +---------------------------------------------------------------------------
 Index: src/include/httpd.h
---- src/include/httpd.h        2001/10/16 11:47:12     1.1.1.16
-+++ src/include/httpd.h        2001/10/16 11:57:38     1.26
-@@ -70,7 +70,19 @@
+--- src/include/httpd.h        30 Oct 2004 13:42:25 -0000      1.1.1.25
++++ src/include/httpd.h        30 Oct 2004 13:44:00 -0000      1.35
+@@ -27,7 +27,19 @@
  /* Headers in which EVERYONE has an interest... */
  
  #include "ap_config.h"
@@ -424,25 +401,21 @@ Index: src/include/httpd.h
  #include "buff.h"
  #include "ap.h"
  
-@@ -141,12 +153,17 @@
- #define DEFAULT_HTTP_PORT     80
- #define DEFAULT_HTTPS_PORT    443
- #define ap_is_default_port(port,r)    ((port) == ap_default_port(r))
+@@ -102,8 +114,13 @@
+ #define ap_http_method(r) ap_os_http_method((void*)r)
+ #define ap_default_port(r) ap_os_default_port((void*)r)
+ #else
 +#ifdef EAPI
 +#define ap_http_method(r)   (((r)->ctx != NULL && ap_ctx_get((r)->ctx, "ap::http::method") != NULL) ? ((char *)ap_ctx_get((r)->ctx, "ap::http::method")) : "http")
 +#define ap_default_port(r)  (((r)->ctx != NULL && ap_ctx_get((r)->ctx, "ap::default::port") != NULL) ? atoi((char *)ap_ctx_get((r)->ctx, "ap::default::port")) : DEFAULT_HTTP_PORT)
 +#else /* EAPI */
- #ifdef NETWARE
- #define ap_http_method(r) ap_os_http_method(r)
- #else
  #define ap_http_method(r)     "http"
- #endif
  #define ap_default_port(r)    DEFAULT_HTTP_PORT
 +#endif /* EAPI */
+ #endif
  
  /* --------- Default user name and group name running standalone ---------- */
- /* --- These may be specified as numbers by placing a # before a number --- */
-@@ -360,6 +377,19 @@
+@@ -312,6 +329,19 @@
  #define SCOREBOARD_MAINTENANCE_INTERVAL 1000000
  #endif
  
@@ -462,7 +435,7 @@ Index: src/include/httpd.h
  /* 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.
-@@ -452,6 +482,9 @@
+@@ -404,6 +434,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);
@@ -472,7 +445,7 @@ Index: src/include/httpd.h
  
  /* Numeric release version identifier: MMNNFFRBB: major minor fix final beta
   * Always increases along the same track as the source branch.
-@@ -855,6 +888,10 @@
+@@ -807,6 +840,10 @@
   * record to improve 64bit alignment the next time we need to break
   * binary compatibility for some other reason.
   */
@@ -483,7 +456,7 @@ Index: src/include/httpd.h
  };
  
  
-@@ -903,6 +940,9 @@
+@@ -855,6 +892,9 @@
      char *local_host;         /* used for ap_get_server_name when
                                 * UseCanonicalName is set to DNS
                                 * (ignores setting of HostnameLookups) */
@@ -493,7 +466,7 @@ Index: src/include/httpd.h
  };
  
  /* Per-vhost config... */
-@@ -975,6 +1015,10 @@
+@@ -927,6 +967,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  */
@@ -509,9 +482,9 @@ Index: src/include/httpd.h
 | Patch the shared memory pool support into the Apache pool facility.
 +---------------------------------------------------------------------------
 Index: src/main/alloc.c
---- src/main/alloc.c   2001/01/23 11:35:08     1.1.1.10
-+++ src/main/alloc.c   2001/01/23 11:48:05     1.17
-@@ -64,6 +64,10 @@
+--- 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 @@
   */
  
  #include "httpd.h"
@@ -522,7 +495,7 @@ Index: src/main/alloc.c
  #include "multithread.h"
  #include "http_log.h"
  
-@@ -138,6 +142,10 @@
+@@ -95,6 +99,10 @@
  #define BLOCK_MINALLOC        0
  #endif
  
@@ -533,7 +506,7 @@ Index: src/main/alloc.c
  /*****************************************************************
   *
   * Managing free storage blocks...
-@@ -166,6 +174,9 @@
+@@ -123,6 +131,9 @@
        char *endp;
        union block_hdr *next;
        char *first_avail;
@@ -543,7 +516,7 @@ Index: src/main/alloc.c
  #ifdef POOL_DEBUG
        union block_hdr *global_next;
        struct pool *owning_pool;
-@@ -216,7 +227,11 @@
+@@ -173,7 +184,11 @@
  /* Get a completely new block from the system pool. Note that we rely on
     malloc() to provide aligned memory. */
  
@@ -554,19 +527,20 @@ Index: src/main/alloc.c
 +#endif
  {
      union block_hdr *blok;
-@@ -230,12 +245,20 @@
-     ++num_malloc_calls;
+     int request_size;
+@@ -189,6 +204,11 @@
      num_malloc_bytes += size + sizeof(union block_hdr);
  #endif
+     request_size = size + sizeof(union block_hdr);
 +#if defined(EAPI) && defined(EAPI_MM)
 +    if (is_shm)
-+        blok = (union block_hdr *)ap_mm_malloc(mm, size + sizeof(union block_hdr));
++        blok = (union block_hdr *)ap_mm_malloc(mm, request_size);
 +    else
 +#endif
-     blok = (union block_hdr *) malloc(size + sizeof(union block_hdr));
+     blok = (union block_hdr *) malloc(request_size);
      if (blok == NULL) {
-       fprintf(stderr, "Ouch!  malloc failed in malloc_block()\n");
+       fprintf(stderr, "Ouch!  malloc(%d) failed in malloc_block()\n",
+@@ -196,6 +216,9 @@
        exit(1);
      }
      debug_fill(blok, size + sizeof(union block_hdr));
@@ -576,7 +550,7 @@ Index: src/main/alloc.c
      blok->h.next = NULL;
      blok->h.first_avail = (char *) (blok + 1);
      blok->h.endp = size + blok->h.first_avail;
-@@ -296,6 +319,10 @@
+@@ -256,6 +279,10 @@
      if (blok == NULL)
        return;                 /* Sanity check --- freeing empty pool? */
  
@@ -587,19 +561,18 @@ Index: src/main/alloc.c
      (void) ap_acquire_mutex(alloc_mutex);
      old_free_list = block_freelist;
      block_freelist = blok;
-@@ -342,7 +369,11 @@
+@@ -302,6 +329,10 @@
  #endif
  
      (void) ap_release_mutex(alloc_mutex);
 +#if defined(EAPI) && defined(EAPI_MM)
 +    if (blok->h.is_shm)
 +        (void)ap_mm_unlock(mm);
- #endif
 +#endif
+ #endif
  }
  
-@@ -350,7 +381,11 @@
+@@ -310,7 +341,11 @@
   * if necessary.  Must be called with alarms blocked.
   */
  
@@ -611,7 +584,7 @@ Index: src/main/alloc.c
  {
      union block_hdr **lastptr = &block_freelist;
      union block_hdr *blok = block_freelist;
-@@ -360,7 +395,12 @@
+@@ -320,7 +355,12 @@
       */
  
      while (blok != NULL) {
@@ -624,7 +597,7 @@ Index: src/main/alloc.c
            *lastptr = blok->h.next;
            blok->h.next = NULL;
            debug_verify_filled(blok->h.first_avail, blok->h.endp,
-@@ -376,7 +416,11 @@
+@@ -336,7 +376,11 @@
      /* Nope. */
  
      min_size += BLOCK_MINFREE;
@@ -636,7 +609,7 @@ Index: src/main/alloc.c
      return blok;
  }
  
-@@ -426,6 +470,9 @@
+@@ -386,6 +430,9 @@
  #ifdef POOL_DEBUG
      struct pool *joined;
  #endif
@@ -646,7 +619,7 @@ Index: src/main/alloc.c
  };
  
  static pool *permanent_pool;
-@@ -440,16 +487,28 @@
+@@ -400,16 +447,28 @@
  #define POOL_HDR_CLICKS (1 + ((sizeof(struct pool) - 1) / CLICK_SZ))
  #define POOL_HDR_BYTES (POOL_HDR_CLICKS * CLICK_SZ)
  
@@ -675,7 +648,7 @@ Index: src/main/alloc.c
      new_pool = (pool *) blok->h.first_avail;
      blok->h.first_avail += POOL_HDR_BYTES;
  #ifdef POOL_DEBUG
-@@ -468,12 +527,38 @@
+@@ -428,12 +487,38 @@
        p->sub_pools = new_pool;
      }
  
@@ -714,7 +687,7 @@ Index: src/main/alloc.c
  #ifdef POOL_DEBUG
  static void stack_var_init(char *s)
  {
-@@ -488,6 +573,13 @@
+@@ -448,6 +533,13 @@
  }
  #endif
  
@@ -728,7 +701,7 @@ Index: src/main/alloc.c
  #ifdef ALLOC_STATS
  static void dump_stats(void)
  {
-@@ -520,6 +612,58 @@
+@@ -480,6 +572,58 @@
      return permanent_pool;
  }
  
@@ -787,7 +760,7 @@ Index: src/main/alloc.c
  void ap_cleanup_alloc(void)
  {
      ap_destroy_mutex(alloc_mutex);
-@@ -530,10 +674,18 @@
+@@ -490,10 +634,18 @@
  {
      ap_block_alarms();
  
@@ -806,7 +779,7 @@ Index: src/main/alloc.c
      /* Don't hold the mutex during cleanups. */
      run_cleanups(a->cleanups);
      a->cleanups = NULL;
-@@ -567,6 +719,10 @@
+@@ -527,6 +679,10 @@
      ap_block_alarms();
      ap_clear_pool(a);
  
@@ -817,7 +790,7 @@ Index: src/main/alloc.c
      (void) ap_acquire_mutex(alloc_mutex);
      if (a->parent) {
        if (a->parent->sub_pools == a)
-@@ -577,6 +733,10 @@
+@@ -537,6 +693,10 @@
            a->sub_next->sub_prev = a->sub_prev;
      }
      (void) ap_release_mutex(alloc_mutex);
@@ -828,7 +801,7 @@ Index: src/main/alloc.c
  
      free_blocks(a->first);
      ap_unblock_alarms();
-@@ -591,6 +751,30 @@
+@@ -551,6 +711,30 @@
      return bytes_in_block_list(block_freelist);
  }
  
@@ -859,7 +832,7 @@ Index: src/main/alloc.c
  /*****************************************************************
   * POOL_DEBUG support
   */
-@@ -756,16 +940,31 @@
+@@ -716,16 +900,31 @@
  
      ap_block_alarms();
  
@@ -891,20 +864,20 @@ Index: src/main/alloc.c
  
      ap_unblock_alarms();
  
-@@ -877,6 +1076,11 @@
-     char *ptr;
-     size = (char *)ps->vbuff.curpos - ps->base;
+@@ -842,6 +1041,11 @@
+     size = cur_len << 1;
+     if (size < AP_PSPRINTF_MIN_SIZE)
+         size = AP_PSPRINTF_MIN_SIZE;
 +#if defined(EAPI) && defined(EAPI_MM)
 +    if (ps->block->h.is_shm)
-+        ptr = ap_mm_realloc(ps->base, 2*size);
++        ptr = ap_mm_realloc(ps->base, size);
 +    else
 +#endif
-     ptr = realloc(ps->base, 2*size);
+     ptr = realloc(ps->base, size);
      if (ptr == NULL) {
        fputs("Ouch!  Out of memory!\n", stderr);
-@@ -897,9 +1101,21 @@
-     cur_len = strp - blok->h.first_avail;
+@@ -865,9 +1069,21 @@
+         size = AP_PSPRINTF_MIN_SIZE;
  
      /* must try another blok */
 +#if defined(EAPI) && defined(EAPI_MM)
@@ -913,9 +886,9 @@ Index: src/main/alloc.c
 +#endif
      (void) ap_acquire_mutex(alloc_mutex);
 +#if defined(EAPI) && defined(EAPI_MM)
-+    nblok = new_block(2 * cur_len, blok->h.is_shm);
++    nblok = new_block(size, blok->h.is_shm);
 +#else
-     nblok = new_block(2 * cur_len);
+     nblok = new_block(size);
 +#endif
      (void) ap_release_mutex(alloc_mutex);
 +#if defined(EAPI) && defined(EAPI_MM)
@@ -925,7 +898,7 @@ Index: src/main/alloc.c
      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 */
-@@ -908,10 +1124,18 @@
+@@ -876,10 +1092,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);
@@ -944,7 +917,7 @@ Index: src/main/alloc.c
      }
      ps->blok = nblok;
      ps->got_a_new_block = 1;
-@@ -930,6 +1154,11 @@
+@@ -898,6 +1122,11 @@
      void *ptr;
  
      ap_block_alarms();
@@ -956,7 +929,7 @@ Index: src/main/alloc.c
      ps.base = malloc(512);
      if (ps.base == NULL) {
        fputs("Ouch!  Out of memory!\n", stderr);
-@@ -942,6 +1171,11 @@
+@@ -910,6 +1139,11 @@
      *ps.vbuff.curpos++ = '\0';
      ptr = ps.base;
      /* shrink */
@@ -974,34 +947,9 @@ Index: src/main/alloc.c
 | modules to intercept the I/O processing via hooks.
 +---------------------------------------------------------------------------
 Index: src/main/buff.c
---- src/main/buff.c    2001/01/23 11:35:08     1.1.1.10
-+++ src/main/buff.c    2001/01/23 11:48:05     1.18
-@@ -127,7 +127,11 @@
-   select() sometimes returns 1 even though the write will block. We must work around this.
- */
-+#ifdef EAPI
-+API_EXPORT(int) sendwithtimeout(int sock, const char *buf, int len, int flags)
-+#else /* EAPI */
- int sendwithtimeout(int sock, const char *buf, int len, int flags)
-+#endif /* EAPI */
- {
-     int iostate = 1;
-     fd_set fdset;
-@@ -195,8 +199,11 @@
-     return (rv);
- }
--
-+#ifdef EAPI
-+API_EXPORT(int) recvwithtimeout(int sock, char *buf, int len, int flags)
-+#else /* EAPI */
- int recvwithtimeout(int sock, char *buf, int len, int flags)
-+#endif /* EAPI */
- {
-     int iostate = 1;
-     fd_set fdset;
-@@ -274,6 +281,9 @@
+--- 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 @@
      }
      else
  #endif
@@ -1011,17 +959,17 @@ Index: src/main/buff.c
        rv = read(fb->fd_in, buf, nbyte);
      
      return rv;
-@@ -285,6 +295,9 @@
+@@ -261,6 +264,9 @@
  
- #if defined (WIN32) || defined(NETWARE)
+ #if defined (WIN32) || defined(NETWARE) || defined(CYGWIN_WINSOCK) 
      if (fb->flags & B_SOCKET) {
 +#ifdef EAPI
 +      if (!ap_hook_call("ap::buff::recvwithtimeout", &rv, fb, buf, nbyte))
 +#endif /* EAPI */
-       rv = recvwithtimeout(fb->fd_in, buf, nbyte, 0);
+       rv = ap_recvwithtimeout(fb->fd_in, buf, nbyte, 0);
        if (rv == SOCKET_ERROR)
            errno = WSAGetLastError();
-@@ -332,6 +345,9 @@
+@@ -308,6 +314,9 @@
      }
      else
  #endif
@@ -1031,19 +979,19 @@ Index: src/main/buff.c
  #if defined (B_SFIO)
        rv = sfwrite(fb->sf_out, buf, nbyte);
  #else
-@@ -358,6 +374,9 @@
+@@ -338,6 +347,9 @@
+    
  #if defined(WIN32) || defined(NETWARE)
      if (fb->flags & B_SOCKET) {
 +#ifdef EAPI
 +      if (!ap_hook_call("ap::buff::sendwithtimeout", &rv, fb, buf, nbyte))
 +#endif /* EAPI */
-       rv = sendwithtimeout(fb->fd, buf, nbyte, 0);
+       rv = ap_sendwithtimeout(fb->fd, buf, nbyte, 0);
        if (rv == SOCKET_ERROR)
            errno = WSAGetLastError();
-@@ -438,6 +457,10 @@
-                      (size_t) SF_UNBOUND, 1, SF_WRITE);
- #endif
+@@ -421,6 +433,10 @@
+     fb->callback_data = NULL;
+     fb->filter_callback = NULL;
  
 +#ifdef EAPI
 +    fb->ctx = ap_ctx_new(p);
@@ -1052,7 +1000,7 @@ Index: src/main/buff.c
      return fb;
  }
  
-@@ -1084,6 +1107,9 @@
+@@ -1073,6 +1089,9 @@
      i = 0;
      while (i < nvec) {
        do
@@ -1069,9 +1017,9 @@ Index: src/main/buff.c
 | variables are initialized.
 +---------------------------------------------------------------------------
 Index: src/main/http_config.c
---- src/main/http_config.c     2001/10/16 11:47:13     1.1.1.12
-+++ src/main/http_config.c     2001/10/16 11:57:38     1.15
-@@ -599,6 +599,20 @@
+--- 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 @@
        m->name = tmp;
      }
  #endif /*_OSD_POSIX*/
@@ -1092,7 +1040,7 @@ Index: src/main/http_config.c
  }
  
  /* 
-@@ -613,6 +627,21 @@
+@@ -571,6 +585,21 @@
  {
      module *modp;
  
@@ -1114,7 +1062,7 @@ Index: src/main/http_config.c
      modp = top_module;
      if (modp == m) {
        /* We are the top module, special case */
-@@ -1006,6 +1035,27 @@
+@@ -964,6 +993,27 @@
      const command_rec *cmd;
      module *mod = top_module;
  
@@ -1142,7 +1090,7 @@ Index: src/main/http_config.c
      if ((l[0] == '#') || (!l[0]))
        return NULL;
  
-@@ -1440,6 +1490,10 @@
+@@ -1428,6 +1478,10 @@
      s->limit_req_fieldsize = main_server->limit_req_fieldsize;
      s->limit_req_fields = main_server->limit_req_fields;
  
@@ -1153,17 +1101,17 @@ Index: src/main/http_config.c
      *ps = s;
  
      return ap_parse_vhost_addrs(p, hostname, s);
-@@ -1550,6 +1604,10 @@
+@@ -1539,6 +1593,10 @@
      s->module_config = create_server_config(p, s);
      s->lookup_defaults = create_default_per_dir_config(p);
-+
 +#ifdef EAPI
 +    s->ctx = ap_ctx_new(p);
 +#endif /* EAPI */
++
      return s;
  }
 
 +---------------------------------------------------------------------------
 | Add the ap_global_ctx variable and the new
@@ -1172,9 +1120,9 @@ Index: src/main/http_config.c
 | is added plus the initialization of one more `ctx' variable.
 +---------------------------------------------------------------------------
 Index: src/main/http_main.c
---- src/main/http_main.c       2001/10/16 11:47:14     1.1.1.15
-+++ src/main/http_main.c       2001/10/16 11:57:39     1.37
-@@ -280,6 +280,9 @@
+--- src/main/http_main.c       22 Oct 2004 10:15:50 -0000      1.1.1.23
++++ src/main/http_main.c       6 Jul 2005 12:29:22 -0000       1.46
+@@ -242,6 +242,9 @@
  
  int ap_dump_settings = 0;
  API_VAR_EXPORT int ap_extended_status = 0;
@@ -1184,7 +1132,7 @@ Index: src/main/http_main.c
  
  /*
   * The max child slot ever assigned, preserved across restarts.  Necessary
-@@ -462,6 +465,30 @@
+@@ -435,6 +438,30 @@
      }
  }
  
@@ -1215,40 +1163,27 @@ Index: src/main/http_main.c
  #ifndef NETWARE
  static APACHE_TLS int volatile exit_after_unblock = 0;
  #endif
-@@ -1435,6 +1462,10 @@
-           ap_log_transaction(log_req);
+@@ -1542,6 +1569,9 @@
        }
  
+       ap_bsetflag(save_req->connection->client, B_EOUT, 1);
 +#ifdef EAPI
 +      ap_call_close_connection_hook(save_req->connection);
 +#endif /* EAPI */
-+
-       ap_bsetflag(save_req->connection->client, B_EOUT, 1);
        ap_bclose(save_req->connection->client);
        
-@@ -1443,6 +1474,9 @@
-         ap_longjmp(jmpbuffer, 1);
+       if (!ap_standalone)
+@@ -1550,6 +1580,9 @@
      }
      else {                    /* abort the connection */
+       ap_bsetflag(current_conn->client, B_EOUT, 1);
 +#ifdef EAPI
 +      ap_call_close_connection_hook(current_conn);
 +#endif /* EAPI */
-       ap_bsetflag(current_conn->client, B_EOUT, 1);
        ap_bclose(current_conn->client);
        current_conn->aborted = 1;
-@@ -1508,7 +1542,11 @@
- }
- #endif
-+#ifdef EAPI
-+API_EXPORT(unsigned int) ap_set_callback_and_alarm(void (*fn) (int), int x)
-+#else
- unsigned int ap_set_callback_and_alarm(void (*fn) (int), int x)
-+#endif
- {
-     unsigned int old;
-@@ -1744,10 +1782,16 @@
+     }
+@@ -1851,10 +1884,16 @@
      /* Send any leftover data to the client, but never try to again */
  
      if (ap_bflush(r->connection->client) == -1) {
@@ -1265,7 +1200,7 @@ Index: src/main/http_main.c
      ap_bsetflag(r->connection->client, B_EOUT, 1);
  
      /* Close our half of the connection --- send the client a FIN */
-@@ -2475,6 +2519,9 @@
+@@ -2553,6 +2592,9 @@
      /* Clear the pool - including any registered cleanups */
      ap_destroy_pool(pglobal);
  #endif
@@ -1275,7 +1210,7 @@ Index: src/main/http_main.c
      exit(code);
  }
  
-@@ -3469,6 +3516,24 @@
+@@ -3623,6 +3665,24 @@
      conn->remote_addr = *remaddr;
      conn->remote_ip = ap_pstrdup(conn->pool,
                              inet_ntoa(conn->remote_addr.sin_addr));
@@ -1300,7 +1235,7 @@ Index: src/main/http_main.c
  
      return conn;
  }
-@@ -3891,6 +3956,15 @@
+@@ -4133,6 +4193,15 @@
      printf("Server's Module Magic Number: %u:%u\n",
           MODULE_MAGIC_NUMBER_MAJOR, MODULE_MAGIC_NUMBER_MINOR);
      printf("Server compiled with....\n");
@@ -1316,7 +1251,7 @@ Index: src/main/http_main.c
  #ifdef TPF
      show_os_specific_compile_settings();
  #endif
-@@ -4057,6 +4131,22 @@
+@@ -4307,6 +4376,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 *));
@@ -1339,7 +1274,7 @@ Index: src/main/http_main.c
  }
  
  #ifndef MULTITHREAD
-@@ -4476,6 +4566,9 @@
+@@ -4808,6 +4893,9 @@
  
            ap_sync_scoreboard_image();
            if (ap_scoreboard_image->global.running_generation != ap_my_generation) {
@@ -1349,7 +1284,7 @@ Index: src/main/http_main.c
                ap_bclose(conn_io);
                clean_child_exit(0);
            }
-@@ -4504,6 +4597,9 @@
+@@ -4836,6 +4924,9 @@
         */
  
  #ifdef NO_LINGCLOSE
@@ -1359,7 +1294,7 @@ Index: src/main/http_main.c
        ap_bclose(conn_io);     /* just close it */
  #else
        if (r && r->connection
-@@ -4514,6 +4610,9 @@
+@@ -4846,6 +4937,9 @@
            lingering_close(r);
        }
        else {
@@ -1369,7 +1304,7 @@ Index: src/main/http_main.c
            ap_bsetflag(conn_io, B_EOUT, 1);
            ap_bclose(conn_io);
        }
-@@ -5273,16 +5372,31 @@
+@@ -5629,16 +5723,31 @@
            usage(argv[0]);
        }
      }
@@ -1401,7 +1336,7 @@ Index: src/main/http_main.c
      }
  
      child_timeouts = !ap_standalone || one_process;
-@@ -5413,6 +5527,10 @@
+@@ -5786,6 +5895,10 @@
            ap_destroy_pool(r->pool);
        }
  
@@ -1412,7 +1347,7 @@ Index: src/main/http_main.c
        ap_bclose(cio);
      }
      exit(0);
-@@ -5759,6 +5877,9 @@
+@@ -6162,6 +6275,9 @@
        ap_kill_cleanups_for_socket(ptrans, csd);
  
  #ifdef NO_LINGCLOSE
@@ -1422,7 +1357,7 @@ Index: src/main/http_main.c
        ap_bclose(conn_io);     /* just close it */
  #else
        if (r && r->connection
-@@ -5769,6 +5890,9 @@
+@@ -6172,6 +6288,9 @@
            lingering_close(r);
        }
        else {
@@ -1432,7 +1367,7 @@ Index: src/main/http_main.c
            ap_bsetflag(conn_io, B_EOUT, 1);
            ap_bclose(conn_io);
        }
-@@ -7316,6 +7440,10 @@
+@@ -7747,6 +7866,10 @@
      if (!conf_specified)
          ap_cpystrn(ap_server_confname, SERVER_CONFIG_FILE, sizeof(ap_server_confname));
  
@@ -1443,25 +1378,25 @@ Index: src/main/http_main.c
      if (!ap_os_is_path_absolute(ap_server_confname))
          ap_cpystrn(ap_server_confname,
                     ap_server_root_relative(pcommands, ap_server_confname),
-@@ -7355,6 +7483,9 @@
-     }
+@@ -7787,6 +7910,9 @@
  #else /* ndef WIN32 */
      server_conf = ap_read_config(pconf, ptrans, ap_server_confname);
-+#endif
+ #endif
 +#ifdef EAPI
 +    ap_init_alloc_shared(FALSE);
- #endif
++#endif
  
      if (ap_configtestonly) {
+         fprintf(stderr, "%s: Syntax OK\n", ap_server_root_relative(pcommands, ap_server_confname));
 
 +---------------------------------------------------------------------------
 | Just add the initialization of the `ctx' variable for
 | conn_rec structures.
 +---------------------------------------------------------------------------
 Index: src/main/http_request.c
---- src/main/http_request.c    2001/05/20 08:16:18     1.1.1.12
-+++ src/main/http_request.c    2001/05/20 08:23:02     1.12
-@@ -1374,6 +1374,10 @@
+--- 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 @@
  
      new->method          = r->method;
      new->method_number   = r->method_number;
@@ -1478,9 +1413,9 @@ Index: src/main/http_request.c
 | request_rec structures.
 +---------------------------------------------------------------------------
 Index: src/main/http_protocol.c
---- src/main/http_protocol.c   2001/10/16 11:47:14     1.1.1.14
-+++ src/main/http_protocol.c   2001/10/16 11:57:39     1.14
-@@ -1110,6 +1110,10 @@
+--- src/main/http_protocol.c   22 Oct 2004 10:15:51 -0000      1.1.1.21
++++ src/main/http_protocol.c   22 Oct 2004 10:18:59 -0000      1.21
+@@ -1172,6 +1172,10 @@
      r->status          = HTTP_REQUEST_TIME_OUT;  /* Until we get a request */
      r->the_request     = NULL;
  
@@ -1491,7 +1426,7 @@ Index: src/main/http_protocol.c
  #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);
-@@ -1258,6 +1262,11 @@
+@@ -1328,6 +1332,11 @@
      rnew->read_body       = REQUEST_NO_BODY;
  
      rnew->main = (request_rec *) r;
@@ -1502,14 +1437,14 @@ Index: src/main/http_protocol.c
 +
  }
  
void ap_finalize_sub_req_protocol(request_rec *sub)
API_EXPORT(void) ap_finalize_sub_req_protocol(request_rec *sub)
 
 +---------------------------------------------------------------------------
 | Add support for loading both EAPI and AP13 modules.
 +---------------------------------------------------------------------------
 Index: src/modules/standard/mod_so.c
---- src/modules/standard/mod_so.c      2001/05/20 08:16:21     1.1.1.7
-+++ src/modules/standard/mod_so.c      2001/05/20 08:23:02     1.8
+--- 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 @@
       * Make sure the found module structure is really a module structure
       * 
@@ -1544,9 +1479,9 @@ Index: src/modules/standard/mod_so.c
 | one hook for creating new %x tags at all.
 +---------------------------------------------------------------------------
 Index: src/modules/standard/mod_log_config.c
---- src/modules/standard/mod_log_config.c      2001/01/23 11:35:12     1.1.1.11
-+++ src/modules/standard/mod_log_config.c      2001/01/23 11:48:08     1.24
-@@ -262,6 +262,9 @@
+--- 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 @@
  typedef const char *(*item_key_func) (request_rec *, char *);
  
  typedef struct {
@@ -1556,7 +1491,7 @@ Index: src/modules/standard/mod_log_config.c
      item_key_func func;
      char *arg;
      int condition_sense;
-@@ -573,15 +576,36 @@
+@@ -541,15 +544,36 @@
      }
  };
  
@@ -1593,7 +1528,7 @@ Index: src/modules/standard/mod_log_config.c
      return NULL;
  }
  
-@@ -707,7 +731,11 @@
+@@ -675,7 +699,11 @@
              break;
  
          default:
@@ -1605,7 +1540,7 @@ Index: src/modules/standard/mod_log_config.c
              if (!l) {
                  char dummy[2];
  
-@@ -716,6 +744,9 @@
+@@ -684,6 +712,9 @@
                  return ap_pstrcat(p, "Unrecognized LogFormat directive %",
                                 dummy, NULL);
              }
@@ -1615,7 +1550,7 @@ Index: src/modules/standard/mod_log_config.c
              it->func = l->func;
              if (it->want_orig == -1) {
                  it->want_orig = l->want_orig_default;
-@@ -777,6 +808,15 @@
+@@ -745,6 +776,15 @@
  
      /* We do.  Do it... */
  
@@ -1637,9 +1572,9 @@ Index: src/modules/standard/mod_log_config.c
 | variables from other modules.
 +---------------------------------------------------------------------------
 Index: src/modules/standard/mod_rewrite.c
---- src/modules/standard/mod_rewrite.c 2001/10/16 11:47:16     1.1.1.12
-+++ src/modules/standard/mod_rewrite.c 2001/10/16 11:57:39     1.10
-@@ -3678,6 +3678,15 @@
+--- 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 @@
      }
  #endif /* ndef WIN32 && NETWARE*/
  
@@ -1661,30 +1596,41 @@ Index: src/modules/standard/mod_rewrite.c
 | the status HTML page.
 +---------------------------------------------------------------------------
 Index: src/modules/standard/mod_status.c
---- src/modules/standard/mod_status.c  2001/05/20 08:16:21     1.1.1.12
-+++ src/modules/standard/mod_status.c  2001/05/20 08:23:02     1.9
-@@ -715,6 +752,12 @@
- </table>\n", r);
- #endif
-       }
-+
-+#ifdef EAPI
-+    ap_hook_use("ap::mod_status::display",
-+                AP_HOOK_SIG4(void,ptr,int,int), AP_HOOK_ALL,
-+                r, no_table_report, short_report);
-+#endif
-     } else {
+--- 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 @@
+                           ap_rprintf(r,
+                            "<td>?<td nowrap>?<td nowrap>..reading.. </tr>\n\n");
+                       else
++#ifndef NO_PRETTYPRINT
++                          ap_rprintf(r,
++                           "<td nowrap><font face=\"Arial,Helvetica\" size=\"-1\">%s</font>"
++                           "<td nowrap><font face=\"Arial,Helvetica\" size=\"-1\">%s</font>"
++                           "<td nowrap><font face=\"Arial,Helvetica\" size=\"-1\">%s</font>"
++                           "</tr>\n\n",
++                           score_record.client,
++                           vhost ? vhost->server_hostname : "(unavailable)",
++                           ap_escape_html(r->pool, score_record.request));
++#else
+                           ap_rprintf(r,
+                            "<td>%s<td nowrap>%s<td nowrap>%s</tr>\n\n",
+                            ap_escape_html(r->pool, score_record.client),
+                            vhost ? ap_escape_html(r->pool, 
+                               vhost->server_hostname) : "(unavailable)",
+                            ap_escape_html(r->pool, score_record.request));
++#endif
+                   }           /* no_table_report */
+               }                       /* !short_report */
+           }                   /* if (<active child>) */
 
 +---------------------------------------------------------------------------
 | Add hooks to the scheme processing to allow other modules to
 | recognize more schemes by intercepting this processing.
 +---------------------------------------------------------------------------
 Index: src/modules/proxy/mod_proxy.c
---- src/modules/proxy/mod_proxy.c      2001/10/16 11:47:15     1.1.1.9
-+++ src/modules/proxy/mod_proxy.c      2001/10/16 11:57:39     1.16
-@@ -215,6 +215,9 @@
+--- src/modules/proxy/mod_proxy.c      11 May 2004 18:28:16 -0000      1.1.1.14
++++ src/modules/proxy/mod_proxy.c      11 May 2004 18:32:15 -0000      1.21
+@@ -175,6 +175,9 @@
  static int proxy_fixup(request_rec *r)
  {
      char *url, *p;
@@ -1693,8 +1639,8 @@ Index: src/modules/proxy/mod_proxy.c
 +#endif /* EAPI */
  
      if (r->proxyreq == NOT_PROXY || strncmp(r->filename, "proxy:", 6) != 0)
-       return DECLINED;
-@@ -222,6 +225,14 @@
+         return DECLINED;
+@@ -182,6 +185,14 @@
      url = &r->filename[6];
  
  /* canonicalise each specific scheme */
@@ -1707,9 +1653,9 @@ Index: src/modules/proxy/mod_proxy.c
 +    else
 +#endif /* EAPI */
      if (strncasecmp(url, "http:", 5) == 0)
-       return ap_proxy_http_canon(r, url + 5, "http", DEFAULT_HTTP_PORT);
+         return ap_proxy_http_canon(r, url + 5, "http", DEFAULT_HTTP_PORT);
      else if (strncasecmp(url, "ftp:", 4) == 0)
-@@ -237,9 +248,44 @@
+@@ -197,9 +208,44 @@
  static void proxy_init(server_rec *r, pool *p)
  {
      ap_proxy_garbage_init(r, p);
@@ -1718,8 +1664,8 @@ Index: src/modules/proxy/mod_proxy.c
 +                AP_HOOK_SIG3(void,ptr,ptr), AP_HOOK_ALL, r, p);
 +#endif
  }
--
  
+-
 +#ifdef EAPI
 +static void proxy_addmod(module *m)
 +{
@@ -1755,10 +1701,10 @@ Index: src/modules/proxy/mod_proxy.c
  
  /* 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 */
-@@ -369,6 +415,14 @@
-               /* CONNECT is a special method that bypasses the normal
-                * proxy code.
-                */
+@@ -331,6 +377,14 @@
+                  * CONNECT is a special method that bypasses the normal proxy
+                  * code.
+                  */
 +#ifdef EAPI
 +              if (!ap_hook_use("ap::mod_proxy::handler",
 +                               AP_HOOK_SIG7(int,ptr,ptr,ptr,ptr,int,ptr),
@@ -1767,22 +1713,22 @@ Index: src/modules/proxy/mod_proxy.c
 +                               ents[i].hostname, ents[i].port, 
 +                               ents[i].protocol) || rc == DECLINED) {
 +#endif /* EAPI */
-               if (r->method_number == M_CONNECT)
-                   rc = ap_proxy_connect_handler(r, cr, url, ents[i].hostname,
-                                              ents[i].port);
-@@ -378,6 +432,9 @@
-                                           ents[i].port);
-               else
-                   rc = DECLINED;
+                 if (r->method_number == M_CONNECT)
+                     rc = ap_proxy_connect_handler(r, cr, url, ents[i].hostname,
+                                                   ents[i].port);
+@@ -340,6 +394,9 @@
+                                                ents[i].port);
+                 else
+                     rc = DECLINED;
 +#ifdef EAPI
 +              }
 +#endif /* EAPI */
  
-               /* an error or success */
-               if (rc != DECLINED && rc != HTTP_BAD_GATEWAY)
-@@ -391,6 +448,14 @@
-  * give up??
-  */
+                 /* an error or success */
+                 if (rc != DECLINED && rc != HTTP_BAD_GATEWAY)
+@@ -354,6 +411,14 @@
+      */
      /* handle the scheme */
 +#ifdef EAPI
 +    if (ap_hook_use("ap::mod_proxy::handler",
@@ -1792,13 +1738,13 @@ Index: src/modules/proxy/mod_proxy.c
 +                    NULL, 0, scheme) && rc != DECLINED)
 +        return rc;
 +#endif /* EAPI */
-     if (r->method_number == M_CONNECT)
-       return ap_proxy_connect_handler(r, cr, url, NULL, 0);
-     if (strcasecmp(scheme, "http") == 0)
-@@ -955,6 +1020,12 @@
-     NULL,                     /* child_init */
-     NULL,                     /* child_exit */
-     proxy_detect              /* post read-request */
+     if (r->method_number == M_CONNECT) {
+         return ap_proxy_connect_handler(r, cr, url, NULL, 0);
+     }
+@@ -951,4 +1016,10 @@
+     NULL,                       /* child_init */
+     NULL,                       /* child_exit */
+     proxy_detect                /* post read-request */
 +#ifdef EAPI
 +   ,proxy_addmod,             /* EAPI: add_module */
 +    proxy_remmod,             /* EAPI: remove_module */
@@ -1806,28 +1752,26 @@ Index: src/modules/proxy/mod_proxy.c
 +    NULL                      /* EAPI: new_connection  */
 +#endif
  };
 
 +---------------------------------------------------------------------------
 | Add hooks to the HTTP processing to allow other modules
 | to enhance it by intercepting this processing.
 +---------------------------------------------------------------------------
 Index: src/modules/proxy/proxy_http.c
---- src/modules/proxy/proxy_http.c     2001/10/16 11:47:15     1.1.1.11
-+++ src/modules/proxy/proxy_http.c     2001/10/16 11:57:39     1.19
-@@ -190,6 +190,9 @@
-     const char *urlptr = NULL;
-     const char *datestr;
-     struct tbl_do_args tdo;
+--- src/modules/proxy/proxy_http.c     22 Oct 2004 10:15:57 -0000      1.1.1.18
++++ src/modules/proxy/proxy_http.c     22 Oct 2004 10:18:59 -0000      1.26
+@@ -127,6 +127,9 @@
+     const char *datestr, *urlstr;
+     int result, major, minor;
+     const char *content_length;
 +#ifdef EAPI
 +    char *peer;
 +#endif
  
      void *sconf = r->server->module_config;
      proxy_server_conf *conf =
-@@ -208,6 +211,12 @@
-       return HTTP_BAD_REQUEST;
+@@ -148,6 +151,12 @@
+         return HTTP_BAD_REQUEST;
      urlptr += 3;
      destport = DEFAULT_HTTP_PORT;
 +#ifdef EAPI
@@ -1838,27 +1782,27 @@ Index: src/modules/proxy/proxy_http.c
 +#endif /* EAPI */
      strp = strchr(urlptr, '/');
      if (strp == NULL) {
-       desthost = ap_pstrdup(p, urlptr);
-@@ -245,12 +254,18 @@
-       err = ap_proxy_host2addr(proxyhost, &server_hp);
-       if (err != NULL)
-           return DECLINED;    /* try another */
+         desthost = ap_pstrdup(p, urlptr);
+@@ -185,12 +194,18 @@
+         err = ap_proxy_host2addr(proxyhost, &server_hp);
+         if (err != NULL)
+             return DECLINED;    /* try another */
 +#ifdef EAPI
 +      peer = ap_psprintf(p, "%s:%u", proxyhost, proxyport);  
 +#endif
      }
      else {
-       server.sin_port = htons(destport);
-       err = ap_proxy_host2addr(desthost, &server_hp);
-       if (err != NULL)
-           return ap_proxyerror(r, HTTP_INTERNAL_SERVER_ERROR, err);
+         server.sin_port = htons((unsigned short)destport);
+         err = ap_proxy_host2addr(desthost, &server_hp);
+         if (err != NULL)
+             return ap_proxyerror(r, HTTP_INTERNAL_SERVER_ERROR, err);
 +#ifdef EAPI
 +      peer =  ap_psprintf(p, "%s:%u", desthost, destport);  
 +#endif
      }
  
-     sock = ap_psocket(p, PF_INET, SOCK_STREAM, IPPROTO_TCP);
-@@ -307,13 +322,41 @@
+@@ -275,14 +290,42 @@
      f = ap_bcreate(p, B_RDWR | B_SOCKET);
      ap_bpushfd(f, sock, sock);
  
@@ -1875,8 +1819,8 @@ Index: src/modules/proxy/proxy_http.c
 +#endif /* EAPI */
 +
      ap_hard_timeout("proxy send", r);
-     ap_bvputs(f, r->method, " ", proxyhost ? url : urlptr, " HTTP/1.0" CRLF,
-          NULL);
+     ap_bvputs(f, r->method, " ", proxyhost ? url : urlptr, " HTTP/1.1" CRLF,
+               NULL);
 +#ifdef EAPI
 +    {
 +      int rc = DECLINED;
@@ -1892,22 +1836,23 @@ Index: src/modules/proxy/proxy_http.c
 +        }
 +    }
 +#else /* EAPI */
+     /* Send Host: now, adding it to req_hdrs wouldn't be much better */
      if (destportstr != NULL && destport != DEFAULT_HTTP_PORT)
-       ap_bvputs(f, "Host: ", desthost, ":", destportstr, CRLF, NULL);
+         ap_bvputs(f, "Host: ", desthost, ":", destportstr, CRLF, NULL);
      else
-       ap_bvputs(f, "Host: ", desthost, CRLF, NULL);
+         ap_bvputs(f, "Host: ", desthost, CRLF, NULL);
 +#endif /* EAPI */
  
      if (conf->viaopt == via_block) {
-       /* Block all outgoing Via: headers */
+         /* Block all outgoing Via: headers */
 
 +---------------------------------------------------------------------------
 | Add EAPI hooks in module structure for APXS generated samples.
 +---------------------------------------------------------------------------
 Index: src/support/apxs.pl
---- src/support/apxs.pl        2001/05/20 08:16:25     1.1.1.10
-+++ src/support/apxs.pl        2001/05/20 08:23:03     1.10
-@@ -703,5 +703,11 @@
+--- 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 @@
      NULL,                  /* child_init                          */
      NULL,                  /* child_exit                          */
      NULL                   /* [#0] post read-request              */
@@ -1925,9 +1870,9 @@ Index: src/support/apxs.pl
 | and similar braindead platforms as DSO.
 +---------------------------------------------------------------------------
 Index: src/support/httpd.exp
---- src/support/httpd.exp      2001/02/28 19:40:56     1.1.1.9
-+++ src/support/httpd.exp      2001/02/28 19:44:35     1.11
-@@ -422,3 +422,59 @@
+--- src/support/httpd.exp      11 May 2004 18:28:26 -0000      1.1.1.13
++++ src/support/httpd.exp      11 May 2004 18:32:16 -0000      1.15
+@@ -431,3 +431,59 @@
  XML_SetUnparsedEntityDeclHandler
  XML_SetUserData
  XML_UseParserAsHandlerArg
@@ -1993,12 +1938,12 @@ Index: src/support/httpd.exp
 | Windows 95 and similar braindead platforms as DDL.
 +---------------------------------------------------------------------------
 Index: src/ApacheCore.def
---- src/ApacheCore.def 2001/01/23 11:35:01     1.1.1.7
-+++ src/ApacheCore.def 2001/03/03 10:46:41     1.11
-@@ -389,3 +389,69 @@
-       ap_stripprefix @380
-         ap_os_dso_load @381
-         ap_os_dso_error @382
+--- src/ApacheCore.def 11 May 2004 18:28:08 -0000      1.1.1.11
++++ src/ApacheCore.def 11 May 2004 18:32:15 -0000      1.15
+@@ -448,3 +448,67 @@
+         ap_get_chunk_size @440
+         ap_escape_logitem @441
+         ap_auth_nonce @442
 +      
 +      ; EAPI extended symbols
 +      ; note; no ID's, so these all bind by name rather than ordinal since 
@@ -2018,8 +1963,6 @@ Index: src/ApacheCore.def
 +      ap_hook_use
 +      ap_hook_call
 +      ap_set_callback_and_alarm
-+      recvwithtimeout
-+      sendwithtimeout
 +      ap_acquire_pool
 +      ap_make_shared_sub_pool
 +      ap_release_pool
This page took 0.142383 seconds and 4 git commands to generate.