-- idist.ry - IDIST protocol -- $Header: /var/lib/cvsd/repos/CSRG/43BSDReno/contrib/isode-beta/others/idist/idist.ry,v 1.1.1.1 2018/04/24 16:12:56 root Exp $ -- -- The UCB rdist protocol as rewritten in terms of ISO OPERATIONS. -- This comes out quite a lot cleaner than the original! It could come -- out cleaner still if some more tidying up of internals was done... -- -- Julian Onions -- Nottingham University Computer Science -- -- -- $Log: idist.ry,v $ -- Revision 1.1.1.1 2018/04/24 16:12:56 root -- BSD 4.3reno -- -- Revision 7.0 89/11/23 21:58:29 mrose -- Release 6.0 -- -- -- NOTICE -- -- Acquisition, use, and distribution of this module and related -- materials are subject to the restrictions of a license agreement. -- Consult the Preface in the User's Manual for the full terms of -- this agreement. -- -- Idist DEFINITIONS ::= BEGIN -- operations -- version specification init OPERATION ARGUMENT InitDir RESULT NULL ERRORS { congested, badfilename } ::= 0 -- transfer a file type (file/dir/link etc) transfer OPERATION ARGUMENT FileSpec RESULT IA5List ERRORS { congested, badfilename, badfiletype } ::= 1 -- finished with this directory. terminate OPERATION ARGUMENT TermStatus RESULT NULL ERRORS { writeerror, protocol, badfiletype, fileproblem } ::= 2 -- clean up a directory listcdir OPERATION RESULT FileList ERRORS { badfilename } ::= 3 -- query existance of file/directory query OPERATION ARGUMENT IA5String RESULT QueryResult ERRORS { congested } ::= 4 -- execute special command special OPERATION ARGUMENT IA5String RESULT IA5List ERRORS { execError } ::= 5 data OPERATION ARGUMENT Data RESULT NULL ERRORS { writeerror } ::= 6 deletefile OPERATION ARGUMENT IA5String RESULT IA5List ERRORS { protocol, badfilename } ::= 7 -- Errors congested ERROR PARAMETER IA5List ::= 0 execError ERROR PARAMETER IA5List ::= 1 badfilename ERROR PARAMETER IA5List ::= 2 badfiletype ERROR ::= 3 writeerror ERROR PARAMETER IA5List ::= 4 protocol ERROR PARAMETER IA5List ::= 5 fileproblem ERROR PARAMETER IA5List ::= 6 -- Data types Initiate ::= SEQUENCE { version INTEGER, user IA5String, passwd IA5String } InitDir ::= CHOICE { destdir[0] IA5String, nodestdir[1] IA5String } FileSpec ::= SEQUENCE { filetype FileType, fileopts Options, filemode INTEGER, filesize INTEGER, filemtime FileTime, fileowner IA5String, filegroup IA5String, filename IA5String, linkname IA5String } FileType ::= ENUMERATED { regular(0), directory(1), symlink(2), hardlink(3) } Options ::= BITSTRING { verify(0), whole(1), younger(2), compare(3), remove(4), follow(5), ignlinks(6), noinstall(7) } TermStatus ::= SEQUENCE { filetype FileType, status BOOLEAN } FileTime ::= INTEGER QueryResult ::= CHOICE { doesntExist[0] NULL, doesExist[1] FileSpec } FileList ::= SEQUENCE OF FileSpec IA5List ::= SEQUENCE OF IA5String Data ::= OCTET STRING END