-- FTPProtError.mesa, Edit: HGM October 13, 1980 7:49 PM -- Copyright Xerox Corporation 1979, 1980 DIRECTORY FTPDefs, FTPPrivateDefs; FTPProtError: PROGRAM IMPORTS FTPPrivateDefs EXPORTS FTPPrivateDefs SHARES FTPDefs = BEGIN OPEN FTPDefs, FTPPrivateDefs; SignalToCode: PUBLIC PROCEDURE [ftpError: FtpError] RETURNS [code: Byte] = BEGIN code ← SELECT ftpError FROM -- communication errors -- IN CommunicationError => codeUnidentifiedPermanentError, -- credential errors credentialsMissing => codeMissingUserName, noSuchPrimaryUser => codeIllegalUserName, noSuchSecondaryUser => codeIllegalConnectName, incorrectPrimaryPassword => codeBadUserPassword, incorrectSecondaryPassword => codeBadConnectPassword, requestedAccessDenied => codeRequestedAccessDenied, -- file errors illegalFilename => codeIllegalServerFilename, noSuchFile => codeFileNotFound, fileAlreadyExists => codeFileAlreadyExists, fileBusy => codeFileBusy, noRoomForFile => codeStorageExhausted, fileDataError => codeFileDataError, -- dump errors IN DumpError => codeFileDataError, -- mail errors noValidRecipients => codeNoValidMailbox, noSuchMailbox => codeIllegalMailbox, -- client errors -- IN ClientError => codeUnidentifiedPermanentError, -- protocol errors IN UndefinedFunctionError => codeCommandUndefined, IN ProtocolSequenceError => codeCommandIllegal, IN IllegalParameterListError => codeMalformedPropertyList, illegalFileType => codeIllegalType, -- IN ProtocolError => codeUnidentifiedPermanentError, -- internal errors -- IN InternalError => codeUnidentifiedPermanentError, -- unidentified errors unidentifiedTransientError => codeUnidentifiedTransientError, ENDCASE => codeUnidentifiedPermanentError; END; CodeToSignal: PUBLIC PROCEDURE [code: Byte] RETURNS [ftpError: FtpError] = BEGIN ftpError ← SELECT code FROM 0 => unidentifiedError, codeCommandUndefined => functionNotImplemented, codeMissingUserName => credentialsMissing, codeCommandIllegal => illegalProtocolSequence, codeMalformedPropertyList => illegalProtocolParameterList, IN [codeIllegalServerFilename..codeIllegalVersion] => illegalFilename, codeIllegalType => illegalFileType, IN [codeIllegalByteSize..codeIllegalEndOfLineConvention] => illegalFileAttribute, codeIllegalUserName => noSuchPrimaryUser, codeBadUserPassword => incorrectPrimaryPassword, codeBadUserAccount => unidentifiedPermanentError, codeIllegalConnectName => noSuchSecondaryUser, codeBadConnectPassword => incorrectSecondaryPassword, IN [codeIllegalCreationDate..codeIllegalAuthor] => illegalFileAttribute, codeIllegalDevice => illegalFilename, codeNoValidMailbox => noValidRecipients, codeIllegalMailbox => noSuchMailbox, codeFileNotFound => noSuchFile, codeRequestedAccessDenied => requestedAccessDenied, codeTransferParametersInconsistent => illegalProtocolSequence, codeFileDataError => fileDataError, codeStorageExhausted => noRoomForFile, -- codeDontSendFile, -- codeStoreNotCompleted => unidentifiedError, codeUnidentifiedTransientError => unidentifiedTransientError, codeUnidentifiedPermanentError => unidentifiedPermanentError, codeFileBusy => fileBusy, codeFileAlreadyExists => fileAlreadyExists, ENDCASE => unrecognizedProtocolErrorCode; END; RecipientErrorToExceptionCode: PUBLIC PROCEDURE [recipientError: RecipientError] RETURNS [exceptionCode: Byte] = BEGIN exceptionCode ← SELECT recipientError FROM noSuchMailbox => excpCannotLocateMailbox, noForwardingProvided => excpNoForwardingProvided, unspecifiedTransientError => excpTransientError, unspecifiedPermanentError => excpPermanentError, ENDCASE => excpUnspecifiedFailure; END; ExceptionCodeToRecipientError: PUBLIC PROCEDURE [exceptionCode: Byte] RETURNS [recipientError: RecipientError] = BEGIN IF exceptionCode ~IN [excpMinimum..excpMaximum] THEN Abort[unrecognizedMailboxExceptionErrorCode]; recipientError ← SELECT exceptionCode FROM -- excpUnspecifiedFailure => unspecifiedError, excpCannotLocateMailbox => noSuchMailbox, excpNoForwardingProvided => noForwardingProvided, excpTransientError => unspecifiedTransientError, excpPermanentError => unspecifiedPermanentError, ENDCASE => unspecifiedError; END; END.. -- FTPProtError