This procedure is defined in the server but not documented via ad_proc or proc_doc and may be intended as a private interface.

The procedure is defined as:

proc tdav::apply_filters {uri options enable_filesystem} {
    

# Verify that the options are valid options. Webdav requires
# support for a minimum set of options. And offers support for a
# limited set of options. (See RFC 2518)

    set required_options [list OPTIONS PROPFIND PROPPATCH MKCOL GET HEAD POST]
    foreach required_option $required_options {
        if {$required_option ni [string toupper $options]} {
            ns_log error "Required option $required_option missing from tDAV options for URI '$uri'.
            Required web dav options are: '$required_options'."
            return
        }
    }
    set allowed_options [list OPTIONS COPY DELETE GET HEAD MKCOL MOVE LOCK POST PROPFIND PROPPATCH PUT TRACE UNLOCK]
    foreach option $options {
        if {[lsearch -exact $allowed_options [string toupper $option]] < 0} {
            ns_log error "Option $option is not an allowed tDAV option for URI '$uri'.
            Allowed web dav options are: '$allowed_options'."
            return
        }
    }

    # Register filters for selected tDAV options. Do not register a
    # filter for GET, POST or HEAD.

    # change /example/* to /example* to accommodate the
    # url matching for registered filters
    set filter_uri "[string trimright $uri /*]*"
    foreach option $options {
        if {$option ni [list GET POST HEAD]} {
            ns_log debug "tDAV registering filter for $filter_uri on $option"
            ns_register_filter postauth [string toupper $option] "${filter_uri}" tdav::filter_webdav_[string tolower $option]
        }
    }
    ns_log notice "tDAV: Registered filters on $filter_uri"

    # Register procedures for selected tDAV options. Do not register a
    # proc for OPTIONS, GET, POST or HEAD.

    if {"true" eq $enable_filesystem} {

        foreach option $options {
            if {$option ni [list OPTIONS GET POST HEAD]} {
                ns_log debug "tDAV registering proc for $uri on $option"
                ns_register_proc [string toupper $option] "${uri}" tdav::webdav_[string tolower $option]
            }
        }
        ns_log notice "tDAV: Registered procedures on $uri"
    } else {
        ns_log notice "tDAV: Filesystem access by WebDAV disabled"
    }
    # Store the tDAV properties in an nsv set so that the registered
    # filters and procedures don't have to read the config file
    # anymore.

    nsv_set tdav_options $uri $options

}

Show another procedure: