<> <> <> <> DIRECTORY BasicTime USING [GMT, nullGMT], IO USING [STREAM], Rope USING [ROPE], SMTPDescr USING [Descr]; SMTPSupport: CEDAR DEFINITIONS = BEGIN ROPE: TYPE = Rope.ROPE; STREAM: TYPE = IO.STREAM; <> <> LogPriority: TYPE = {verbose, noteworthy, important, ATTENTION, CRITICAL}; logPriorityNames: ARRAY LogPriority OF ROPE -- = ["verbose", "noteworthy", "important", "ATTENTION", "CRITICAL"] -- ; <> <> <> <> <> Log: PROC [priority: LogPriority, note1, note2, note3, note4, note5, note6, note7, note8, note9, note10: ROPE _ NIL]; currentLogAcceptPriority: LogPriority; <> AuthorizationCheck: PROC [sender: ROPE] RETURNS [ok: BOOLEAN]; CheckHeader: PROC [sender: ROPE, descr: SMTPDescr.Descr] RETURNS [ok: BOOLEAN]; <> NotifySender: PROC [descr: SMTPDescr.Descr, why1, why2, why3, why4, why5: ROPE _ NIL]; <> HeaderParseError: PROC [recipList: LIST OF ROPE, descr: SMTPDescr.Descr]; <> Now: PROC [compressed: BOOL _ FALSE] RETURNS [rope: ROPE, gmt: BasicTime.GMT]; <> RFC822Date: PROC [gmt: BasicTime.GMT _ BasicTime.nullGMT] RETURNS [date: ROPE]; <> <> <> CreateSubrangeStream: PROC [origStream: STREAM, min, max: INT] RETURNS [STREAM]; RopeFromSubrange: PROC [origStream: STREAM, min, max: INT] RETURNS [ROPE]; END.