User-defined attributes and the field FILTER may have the
attribute-value-type of FILTER.
If a link has one or more filters attached to it, they are
specified as one or more instances of the link's FILTER field.
One ATTRIBUTE line will always be returned for each
filter. The
lines are returned in the same order in which the filters will be
applied to the link. The return format is:
ATTRIBUTE> LINK FIELD FILTER filter-type
execution-location pre-or-post
(PREDEFINED filter-name
or
LINK L target name-component host-type host-name
hsoname-type hsoname object-version
DEST-EXP dest-expiration )
ID id info
ARGS filter-arg
The values for filter-type are: DIRECTORY, filter is applied to the current directory; HIERARCHY, filter is applied to all directories reachable through the filtered link; OBJECT filter is applied to an object other than a directory; UPDATE, filter is applied when updating the directory.
execution-location refers to where the filter will be executed. Filters are usually executed on the CLIENT, but may be executed on the SERVER.
pre-or-post is PRE if the filter is to be applied before union links are expanded and POST if the filter is to be applied after union links are expanded. POST is the common case for client filters. Server filters must be PRE at this time, since the server does not yet perform remote expansion of union links.
Filters may be PREDEFINED, which means that it is expected that
the appropriate client or server will understand the predefined name, or
they may be LOADABLE, which means that they are object
code that will be dynamically linked with the client or
server.
There may also be server-specific PREDEFINED filters
for special applications (such as Archie). Their
execution-location will always be SERVER.
One may specify zero or more arguments to the filter, following the ARGS keyword.