Internal Memo
ToFrom
Communication ProtocolsEd Taft
 PARC/CSL
SubjectDate
LookupFile Protocol September 10, 1982
Abstract
The existence of a file, along with its create date and length hint, may be determined by a single exchange of packets with a LookupFile server.
The existence of a file, along with its create date and length hint, may be determined by a single exchange of packets with the LookupFile server. This is intended to provide a means of file validation much cheaper than either FTP or Leaf. Its principal intended application is the CIFS file cache manager in Cedar.
The server resides on socket 61B of any file server that offers this service. The client initiates the exchange with:
LookupFileRequest:
 Pup type:  200B
 Pup ID:  chosen by client
 Pup contents: a text string identifying the file
If the server is not offering this service, it responds with an Error Pup with sub-type 2, no such port''. Otherwise, it responds with one of:
LookupFileReply:
 Pup type:  201B
 Pup ID:  same as LookupFileRequest Pup
 Pup contents: 3 fields, as follows:
file version number (1 word)
file create date, in standard Alto packed format (2 words, high-order word firstnote that this is the reverse of the word order for a Mesa LONG CARDINAL)
file length in 8-bit bytes (2 words, high-order word first)note that this is only a hint, and doesn't include the leader page.
LookupFileError:
 Pup type:  202B
 Pup ID:  same as LookupFileRequest Pup
 Pup contents: 1-word error code whose interpretation is server-dependent
It is the client's responsibility to choose Pup IDs in such a way that it can correctly match responses with requests.
This protocol is currently implemented by IFS file servers running version 1.36.4 or newer of the IFS software.
The IFS implementation requires that the LookupFileRequest contain a complete IFS filename in the form <directory>subdirectories>..>name!version'', except that the version may be one of the special version designators (!H'' or !L''), or may be omitted altogether in which case "!H" is assumed. Patterns containing *'' are not permitted.
The error codes returned by IFS LookupFile servers are IFS internal error codes, whose interpretation may be found in file <System>IFS.errors on that server.