Previous: Directory Attributes
Prospero directories contain links to the objects that are included in
the directory. The following information is maintained for each link.
- This is the single component of the
object's path relative to the current directory. Its
attribute-type is SEQUENCE.
- Short description of link
- The type of a link can be either
normal [L] or union [U]. In the case of a normal link, an entry for
the link is visible when the directory is listed. In the case of a
union link, which can only be made to another directory, the links
from the target directory appear as part of the directory from which
the union link originates when the originating directory is listed.
If multiple objects have the same name, the order in which the union
links appear determines which object is
- Target of link: For links in a directory that
don't point to objects, could be SYMBOLIC or EXTERNAL. For a
forwarding pointer it is FP. Links to objects will have a target
field indicating the cached value of the object's BASE-TYPE
attribute. When stored on a vlink structure, it may have exactly one
of the following forms: OBJECT, FILE, DIRECTORY,
DIRECTORY+FILE. There is no guarantee that the type of the target
has not changed. Thus, this field is the cached value of the object's
base type. For union links, this field is always DIRECTORY or
DIRECTORY+FILE. See section for a further
discussion of this.
By default, a hidden
link is not displayed when a directory is listed. It is, however,
returned by the directory server, and is traversed if the actual name
is specified in a pathname. An Externally-Hidden link is a hidden
link that will be displayed if the current virtual system is the same
as the owning virtual system for the directory containing the link.
The user may override the hidden option, causing hidden links to be
listed. Note that it is also possible to hide a link by
specifying its protection as non-listable. Such links will only
be returned by the directory server when the actual name of the link
has been specified.
- Multiple filters
allowed. The filter attribute is a pointer to a program that can be
used to filter the contents of directories to which links are made.
data is the set of optional arguments passed to the filter
program. In addition to the linked directory and arguments, the
filter has access to all other information available from the current
Filters come in several types. By default, a filter is a directory
filter, and is applied when searching directories. A hierarchy filter
is similar to a directory filter. The difference is that a directory
filter is applied to a single directory, while a hierarchy filter is
applied to the entire hierarchy (including subdirectories) reached
through a link. Directory and hierarchy filters come in two types.
The default is post-expansion. The filter is applied after all union
links have been expanded. A pre-expansion filter is applied before
union links are expanded. An object filter is applied when accessing
an object other than a directory, and might be used, for example, to
cause some operation to be performed on the object before it is
accessed. Note, however, that all types of filters are associated
Filters are applied to a directory in the order of pre-or post
expansion, decreasing depth of the links to which they are attached
(for hierarchy filters), and finally in the order that the filters are
specified on the traversed links.
- Attributes (optional). Application attributes to be
associated with the link. This allows a user or application to add
(or override) attributes to the linked object (which might be owned by
someone else, and thus not modifiable).
- The name of the host on which the
object can be found.
- The type of
the hostname. In particular, whether the hostname is an Internet
address, a domain style name, or a name in some other naming system.
Note that a symbolic link is a link where the destination host is a
virtual system, and the destination object name is a name relative to
that virtual system.
- Host-specific object name. The name of the object
relative to the destination system.
type of HSONAME. Different types of names include numerical file IDs,
names relative to the root of the local file system, etc. Right now,
only pathnames are implemented, and their type is ASCII.
- By specifying a version number
in a directory link, the link is made to a specific version of the
object, and changes to the object will not be visible through the
- Access control info (optional). Allows restrictions on who can
read or modify individual directory entries. These are really
attributes, though they are in fact retrieved and modified with LIST-ACL and
EDIT-ACL, and do not appear on the normal attribute listings.
- Destination expiration date and time. Its
implied type is a single-element SEQUENCE, in ASN-TIME format.
This entry indicates how long
the information in the link should be considered valid. When an
object is accessed through a link, the destination expiration date
should be set to the current time plus the destination time-to-live.
Note that expired directory entries do not disappear. Typically they
remain valid. The expiration means that there is no longer a
guarantee that the object originally referenced can still be found.
- ID. When a new object is created, a unique
object identifier may be assigned. This identifier can be included in
links, and used to further verify that the named object is the one
that is actually desired. It allows one to reference objects after
their expiration dates with the guarantee that if these identifiers
match, it is the same object. In the prototype, the object identifier
is a random number of type REMOTE. Other types of object identifiers
will be defined after more work is done by an IETF working group.
- Valid-till (optional). If a link is a cached value, then
this field indicates how long the entry should be considered valid.
For example, a symbolic link may have a corresponding cached hard
link. Until its expiration a cache entry may be used instead of
searching based on the symbolic link. If this field is 0, then the
link is not a cached entry.
- Last-update (optional). This is the time the link was
last updated. Its expected use is for resolving conflicting updates
in replicated directories.
Previous: Directory Attributes
Thu Jun 20 13:02:20 PDT 1996