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
or LINK L target name-component host-type host-name hsoname-type hsoname object-version DEST-EXP dest-expiration ) ID id info
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.