On 6/26/24 1:49 AM, yla...@apache.org wrote:
> Author: ylavic
> Date: Tue Jun 25 23:49:09 2024
> New Revision: 1918626
>
> URL: http://svn.apache.org/viewvc?rev=1918626&view=rev
> Log:
> mod_proxy: Fixup UDS filename for mod_proxy called through r->handler.
>
> * modules/proxy/proxy_util.c:
> Export ap_proxy_fixup_uds_filename() from fix_uds_filename.
> Call it from ap_proxy_pre_request() even for rewritten balancer workers.
>
> * modules/proxy/mod_proxy.h:
> Declare ap_proxy_fixup_uds_filename()
>
> * modules/proxy/mod_proxy.c:
> Fixup UDS filename from r->handler in proxy_handler().
>
> * include/ap_mmn.h:
> Bump MMN minor for ap_proxy_fixup_uds_filename()
>
>
> Modified:
> httpd/httpd/trunk/include/ap_mmn.h
> httpd/httpd/trunk/modules/proxy/mod_proxy.c
> httpd/httpd/trunk/modules/proxy/mod_proxy.h
> httpd/httpd/trunk/modules/proxy/proxy_util.c
>
> Modified: httpd/httpd/trunk/include/ap_mmn.h
> URL:
> http://svn.apache.org/viewvc/httpd/httpd/trunk/include/ap_mmn.h?rev=1918626&r1=1918625&r2=1918626&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/include/ap_mmn.h (original)
> +++ httpd/httpd/trunk/include/ap_mmn.h Tue Jun 25 23:49:09 2024
> @@ -729,6 +729,7 @@
> * 20211221.22 (2.5.1-dev) Add AP_MPMQ_CAN_WAITIO
> * 20211221.23 (2.5.1-dev) Add ap_set_content_type_ex(), ap_filepath_merge(),
> * and AP_REQUEST_TRUSTED_CT BNOTE.
> + * 20211221.24 (2.5.1-dev) Add ap_proxy_fixup_uds_filename()
> */
>
> #define MODULE_MAGIC_COOKIE 0x41503235UL /* "AP25" */
> @@ -736,7 +737,7 @@
> #ifndef MODULE_MAGIC_NUMBER_MAJOR
> #define MODULE_MAGIC_NUMBER_MAJOR 20211221
> #endif
> -#define MODULE_MAGIC_NUMBER_MINOR 23 /* 0...n */
> +#define MODULE_MAGIC_NUMBER_MINOR 24 /* 0...n */
>
> /**
> * Determine if the server's current MODULE_MAGIC_NUMBER is at least a
>
> Modified: httpd/httpd/trunk/modules/proxy/mod_proxy.c
> URL:
> http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/mod_proxy.c?rev=1918626&r1=1918625&r2=1918626&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/modules/proxy/mod_proxy.c (original)
> +++ httpd/httpd/trunk/modules/proxy/mod_proxy.c Tue Jun 25 23:49:09 2024
> @@ -1319,22 +1320,29 @@ static int proxy_handler(request_rec *r)
> return DECLINED;
> }
>
> - if (!r->proxyreq) {
> - rc = DECLINED;
> - /* We may have forced the proxy handler via config or .htaccess */
> - if (r->handler &&
> - strncmp(r->handler, "proxy:", 6) == 0 &&
> - strncmp(r->filename, "proxy:", 6) != 0) {
> - r->proxyreq = PROXYREQ_REVERSE;
> - r->filename = apr_pstrcat(r->pool, r->handler, r->filename,
> NULL);
> - /* Still need to fixup/canonicalize r->filename */
> + /* We may have forced the proxy handler via config or .htaccess */
> + if (!r->proxyreq && r->handler && strncmp(r->handler, "proxy:", 6) == 0)
> {
> + char *old_filename = r->filename;
> +
> + r->proxyreq = PROXYREQ_REVERSE;
> + r->filename = apr_pstrcat(r->pool, r->handler, r->filename, NULL);
> +
> + /* Still need to fixup/canonicalize r->filename */
> + uri = r->filename + 6;
I don't think that we need to set uri to anything here. It either gets set
below in
ap_proxy_fixup_uds_filename below or if not we set it to r->filename + 6 later
(line 1427).
> + rc = ap_proxy_fixup_uds_filename(r, &uri);
> + if (rc <= OK) {
> rc = proxy_fixup(r);
> }
> if (rc != OK) {
> - return rc;
> + r->filename = old_filename;
> + r->proxyreq = 0;
> }
> - } else if (strncmp(r->filename, "proxy:", 6) != 0) {
> - return DECLINED;
> + }
> + else if (r->proxyreq && strncmp(r->filename, "proxy:", 6) == 0) {
> + rc = OK;
> + }
> + if (rc != OK) {
> + return rc;
> }
>
> /* handle max-forwards / OPTIONS / TRACE */
>
Regards
RĂ¼diger