-- File: HostWatcherOps.mesa, Last Edit: HGM February 9, 1981 10:15 AM DIRECTORY System USING [gmtEpoch, GreenwichMeanTime], PupDefs USING [PupBuffer], PupTypes USING [fillInPupAddress, PupAddress]; HostWatcherOps: DEFINITIONS = BEGIN Mode: TYPE = {gate, chat, ftp, mail, librarian, spruce, eftp}; State: TYPE = {inaccessible, up, full, down, rejecting, timeout, unknown}; UpDown: TYPE = {unknown, up, down}; Info: TYPE = POINTER TO InfoObject; InfoObject: TYPE = RECORD [ name: STRING, to, cc, full: STRING, address: PupTypes.PupAddress, mode: Mode, state: State ← unknown, upDown: UpDown ← unknown, -- the last time we knew what was happening probes: LONG CARDINAL ← 0, counters: ARRAY State OF LONG CARDINAL ← ALL[0], lastUp: System.GreenwichMeanTime ← System.gmtEpoch, lastGateway: PupTypes.PupAddress ← PupTypes.fillInPupAddress, lastHops, previousHops: CARDINAL ← 0, noPath: BOOLEAN ← TRUE, lastLineChanged, lastHopUsesPhoneLine: BOOLEAN ← FALSE, foundLastGateway, lastGatewayOk: BOOLEAN ← FALSE, text: STRING, next: Info]; PokeGateway: PROCEDURE [info: Info]; PokeChat: PROCEDURE [info: Info]; PokeFtp: PROCEDURE [info: Info]; PokeMail: PROCEDURE [info: Info]; PokeLibrarian: PROCEDURE [info: Info]; PokeSpruce: PROCEDURE [info: Info]; PokeEftp: PROCEDURE [info: Info]; ShowErrorPup: PUBLIC PROCEDURE [b: PupDefs.PupBuffer]; END.