On Wed, 19 Jun 2002, James Bromberger wrote: > Seems that the current 2.8.8 has some problems patching into some of > the mod_proxy code: > > ./ap/Makefile.tmpl.rej > ./modules/proxy/mod_proxy.c.rej > ./modules/proxy/proxy_http.c.rej
hmmmm... wonder why I didn't notice those before? Sigh. Anyway, attached is a patch (totally untested!) which *should* replace the missing part of the mod_ssl patch. So after you've run ./configure --force, apply this patch by going to the apache_1.3.26/ directory and running "patch -p0 < modssl-2.8.8-1.3.26-fixup.patch". Let me know if it works or breaks. ;) --Cliff
--- ./src/ap/Makefile.tmpl-1.3.26 Tue Jun 18 20:32:48 2002 +++ ./src/ap/Makefile.tmpl Tue Jun 18 20:33:18 2002 @@ -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_strtol.o + ap_strtol.o ap_hook.o ap_ctx.o ap_mm.o .c.o: $(CC) -c $(INCLUDES) $(CFLAGS) $< --- ./src/modules/proxy/mod_proxy.c-1.3.26 Tue Jun 18 20:34:15 2002 +++ ./src/modules/proxy/mod_proxy.c Tue Jun 18 20:36:36 2002 @@ -454,6 +454,14 @@ */ /* handle the scheme */ +#ifdef EAPI + if (ap_hook_use("ap::mod_proxy::handler", + AP_HOOK_SIG7(int,ptr,ptr,ptr,ptr,int,ptr), + AP_HOOK_DECLINE(DECLINED), + &rc, r, cr, url, + 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); } @@ -1051,4 +1059,10 @@ NULL, /* child_init */ NULL, /* child_exit */ proxy_detect /* post read-request */ +#ifdef EAPI + ,proxy_addmod, /* EAPI: add_module */ + proxy_remmod, /* EAPI: remove_module */ + NULL, /* EAPI: rewrite_command */ + NULL /* EAPI: new_connection */ +#endif }; --- ./src/modules/proxy/proxy_http.c-1.3.26 Tue Jun 18 20:37:07 2002 +++ ./src/modules/proxy/proxy_http.c Tue Jun 18 20:40:36 2002 @@ -170,6 +170,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 = @@ -320,14 +323,43 @@ f = ap_bcreate(p, B_RDWR | B_SOCKET); ap_bpushfd(f, sock, sock); +#ifdef EAPI + { + char *errmsg = NULL; + ap_hook_use("ap::mod_proxy::http::handler::new_connection", + AP_HOOK_SIG4(ptr,ptr,ptr,ptr), + AP_HOOK_DECLINE(NULL), + &errmsg, r, f, peer); + if (errmsg != NULL) + return ap_proxyerror(r, HTTP_BAD_GATEWAY, errmsg); + } +#endif /* EAPI */ + ap_hard_timeout("proxy send", r); ap_bvputs(f, r->method, " ", proxyhost ? url : urlptr, " HTTP/1.1" CRLF, NULL); + +#ifdef EAPI + { + int rc = DECLINED; + ap_hook_use("ap::mod_proxy::http::handler::write_host_header", + AP_HOOK_SIG6(int,ptr,ptr,ptr,int,ptr), + AP_HOOK_DECLINE(DECLINED), + &rc, r, f, desthost, destport, destportstr); + if (rc == DECLINED) { + if (destportstr != NULL && destport != DEFAULT_HTTP_PORT) + ap_bvputs(f, "Host: ", desthost, ":", destportstr, CRLF, NULL); + else + ap_bvputs(f, "Host: ", desthost, CRLF, NULL); + } + } +#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); else ap_bvputs(f, "Host: ", desthost, CRLF, NULL); +#endif if (conf->viaopt == via_block) { /* Block all outgoing Via: headers */