Has anybody seen --enable-disk-cache or --enable-mem-cache work under apache 2? In my scenario: --enable-maintainer-mode --with-mpm=prefork --enable-rewrite --enable-expires --enable-speling --disable-auth --enable-headers --enable-info --disable-userdir --enable-dav --enable-proxy --enable-proxy-connect --enable-proxy-ftp --enable-proxy-http --enable-file-cache --enable-cache --enable-disk-cache --enable-mem-cache --no-create --no-recursion --prefix=/usr/local/apache-2-clean the cache context's filename is copied to r->filename cache_url_handler (modules/experimental/mod_cache.c:192) cache_read_entity_headers (modules/experimental/mod_cache.c:192) cache_select_url which (modules/experimental/mod_cache.c:287) r->filename = apr_pstrdup(r->pool, info->filename ); before the content_set filter sets it. cache_in_filter (modules/experimental/mod_cache.c:732) info->filename = apr_pstrdup(r->pool, r->filename );
Can someone who has this working set breakpoints at cache_url_handler and cache_in_filter and let me know if they see the same behavior? The two are registered with ap_hook_quick_handler(cache_url_handler, NULL, NULL, APR_HOOK_FIRST); and ap_register_output_filter("CACHE_IN", cache_in_filter, NULL, AP_FTYPE_CONTENT_SET); "CACHE_IN" is added to the request several places in cache_url_handler (a bit too late) and in cache_conditional_filter, which is also added to the request in cache_url_handler. From this it appears that the info->filename will _always_ be copied to r->filename before it has been initialized. If you are replicating this problem, you will probably need to created the disk cache directory /usr/local/apache-2-clean/proxy (in this case). Otherwise, the cache is never written and so never read and so the code path never arises. Since this is a cache re-use issue, you'll have to GET something twice through the proxy in rapid enough succession that the cached copy doesn't go stale. For now, I just cheesed around it with +++ modules/experimental/mod_cache.c:287 + if (info->filename) r->filename = apr_pstrdup(r->pool, info->filename ); but never having seen it work, I don't know what the intended path is. -- -eric ([EMAIL PROTECTED]) Feel free to forward this message to any list for any purpose other than email address distribution.