DIRECTORY Arpa USING [Address], ArpaIP USING [Buffers], ArpaTCPOps USING [ConnectionState, TCPHandle], IO USING [STREAM], Rope USING [ROPE]; ArpaTCPLogging: CEDAR DEFINITIONS ~ BEGIN Direction: TYPE ~ {fromNet, toNet, rexmitToNet}; pktFile, logFile: IO.STREAM; -- make non-NIL to enable logging addrToWatch: Arpa.Address; -- Address to watch. Arpa.nullAddress will disable logging, [255,255,255,255] to watch all. PrintTCPPacket: PROC [handle: ArpaTCPOps.TCPHandle, data: ArpaIP.Buffers, dir: Direction]; PrintStateChange: PROC [handle: ArpaTCPOps.TCPHandle, newState: ArpaTCPOps.ConnectionState]; PrintMessage: PROC [r: Rope.ROPE]; PrintMessageWithSrc: PROC [r: Rope.ROPE, sourceAddr: Arpa.Address]; END. ΄ArpaTCPLogging.mesa Copyright (C) 1983 by Xerox Corporation. All rights reserved. The following program was created in 1983 but has not been published within the meaning of the copyright law, is furnished under license, and may not be used, copied and/or disclosed except in accordance with the terms of said license. Last Edited by: Nichols, August 23, 1983 11:40 pm Last Edited by: Taft, January 4, 1984 12:56 pm Last Edited by: HGM, March 23, 1984 3:59:43 am PST Doug Terry, August 27, 1987 1:51:38 pm PDT John Larson, April 14, 1986 11:19:06 pm PST Print or log TCP packets. The following information is printed for each packet: state of Connection Received, Sent or Retransmitted (R, S or X) Control Flags (Urgent, Ack, Push, Reset, SYN, FIN) Sequence number mod 100000 Ack number mod 100000 Window length (number of bytes of TCP header and data) source Address and Port -> Destination Address and Port Print or log state transitions. Κx– "cedar" style˜head™Icode2šœ©™©Ibody™1M™.M™2Icode™*N™+—™šΟk ˜ Lšœœ ˜Lšœœ ˜Lšœ œ˜.Lšœœœ˜Lšœœœ˜——šΟnœœ ˜!Lšœ˜Lšœ œ!˜0LšœœœΟc!˜>LšœŸ]˜zšžœœF˜ZšœP™PLšœ™Lšœ+™+Lšœ2™2Lšœ™Lšœ™Lšœ™Lšœ/™/Lšœ7™7——šžœœF˜\Lšœ™—Lšž œœ œ˜"Lšžœœ œ˜CLšœ˜——…—Θτ