At 04:34 PM 2/6/2004, [EMAIL PROTECTED] wrote:
>Joshua Slive wrote:
>>>I do, however, agree that doing a directory-walk on virtual resources is
>>>not nice.  But my opinion is that "virtualness" is a property of the
>>>resource, and hence should be designated when selecting the resource.
>>>That is why I suggested changing SetHandler rather than <Location>.
>>
>>And perhaps I'm going way off in left field here, but why should this be
>>user-configurable at all?  Shouldn't the (for example) server-status
>>handler know itself that it is a virtual handler, and therefore indicate
>>that the directory-walk should be skipped?
>
>I like it!  assuming we tweak it to be the module's responsibility to declare this 
>property, vs. strictly the handler's (too late).

Modules can do that today with some very trivial code...






static int virtual_map_location(request_rec *r)
{
    int access_status;

    /* Test that SetHandler forced to this content 
     * otherwise skip it.
     */
    if (strncmp(r->handler, "info-handler") != 0)
        return DECLINED;

    /* this info-handler won't deal with the filename
     * so null the filename to ensure no file is served.
     */
    r->filename = "";

    /* Don't let the core map_to_storage hook handle this,
     * We don't need directory/file_walk.  See mod_proxy.c
     * if our own custom <Restrictions > blocks were needed.
     */
    return OK;
}


static void register_hooks(apr_pool_t *p)
{
...
    /* Suppress default dir_walk behavior, our module's
     * content is virtual.
     */
    ap_hook_map_to_storage(virtual_map_location, NULL, NULL, APR_HOOK_MIDDLE);

}


Reply via email to