DIRECTORY Rope USING [ROPE], IPDefs USING [Address], UDP USING [BodyRec]; IPNameUdp: CEDAR DEFINITIONS = BEGIN ROPE: TYPE = Rope.ROPE; DomainHeader: TYPE = MACHINE DEPENDENT RECORD [ id (0): CARDINAL, qr(1: 0..0): MACHINE DEPENDENT {query(0), response(1)} _ query, opcode (1: 1..4): MACHINE DEPENDENT { query(0), iquery(1), cquerym(2), cqueryu(3), spare(15)} _ query, aa (1: 5..5): BOOL _ FALSE, tc (1: 6..6): BOOL _ FALSE, rd (1: 7..7): BOOL _ FALSE, ra (1: 8..8): BOOL _ FALSE, spare (1: 9..11): CARDINAL [0..7) _ 0, rcode (1: 12..15): MACHINE DEPENDENT { ok(0), format(1), serverFailed(2), nameNotFound(3), notImplemented(4), refused(5), spare(15)} _ ok, qdCount(2): CARDINAL _ 0, anCount(3): CARDINAL _ 0, nsCount(4): CARDINAL _ 0, arCount(5): CARDINAL _ 0 ]; Type: TYPE = MACHINE DEPENDENT { a(1), ns(2), md(3), mf(4), cName(5), soa(6), mb(7), mg(8), mr(9), null(10), wks(11), ptr(12), hinfo(13), minfo(14), mx(15), axfbr(252), mailb(253), maila(254), star(255), spare(CARDINAL.LAST)}; Class: TYPE = MACHINE DEPENDENT { in(1), cs(2), star(255), spare(CARDINAL.LAST)}; EndOfData: PUBLIC SIGNAL; AppendQuery: PUBLIC PROC [ udp: LONG POINTER TO UDP.BodyRec, domain: LONG POINTER TO DomainHeader, query: ROPE, type: Type, class: Class]; AppendInverse: PUBLIC PROC [ udp: LONG POINTER TO UDP.BodyRec, domain: LONG POINTER TO DomainHeader, address: IPDefs.Address, type: Type, class: Class]; AppendName: PUBLIC PROC [ udp: LONG POINTER TO UDP.BodyRec, name: ROPE]; AppendFragment: PUBLIC PROC [ udp: LONG POINTER TO UDP.BodyRec, rope: ROPE]; AppendTwoBytes: PUBLIC PROC [ udp: LONG POINTER TO UDP.BodyRec, data: UNSPECIFIED]; AppendIPAddress: PUBLIC PROC [ udp: LONG POINTER TO UDP.BodyRec, address: IPDefs.Address]; SkipQuery: PUBLIC PROC [udp: LONG POINTER TO UDP.BodyRec]; SkipRR: PUBLIC PROC [udp: LONG POINTER TO UDP.BodyRec]; GetName: PUBLIC PROC [udp: LONG POINTER TO UDP.BodyRec] RETURNS [rope: ROPE]; GetTtl: PUBLIC PROC [ udp: LONG POINTER TO UDP.BodyRec] RETURNS [INT]; GetCard: PUBLIC PROC [ udp: LONG POINTER TO UDP.BodyRec] RETURNS [LONG CARDINAL]; GetCardinal: PUBLIC PROC [ udp: LONG POINTER TO UDP.BodyRec] RETURNS [CARDINAL]; GetTwoBytes: PUBLIC PROC [ udp: LONG POINTER TO UDP.BodyRec] RETURNS [UNSPECIFIED]; GetIPAddress: PUBLIC PROC [ udp: LONG POINTER TO UDP.BodyRec] RETURNS [a: IPDefs.Address]; GetOneByte: PUBLIC PROC [ udp: LONG POINTER TO UDP.BodyRec] RETURNS [UNSPECIFIED]; GetChar: PUBLIC PROC [ udp: LONG POINTER TO UDP.BodyRec] RETURNS [c: CHAR]; GetRope: PUBLIC PROC [ udp: LONG POINTER TO UDP.BodyRec] RETURNS [rope: ROPE]; END. ΰIPNameUdp.mesa Copyright c 1985 by Xerox Corporation. All rights reserved. Hal Murray May 19, 1985 11:07:40 pm PDT John Larson, July 19, 1987 5:04:13 pm PDT Defaults optimized for querys Raised when no more udp data ΚG˜šœ™Icodešœ Οmœ1™J˜—šŸ œžœžœ˜Jš œžœžœžœžœ žœž œ˜8J˜—šŸœžœžœ˜Jš œžœžœžœžœ žœžœ˜4J˜—šŸœžœžœ˜Jš œžœžœžœžœ žœžœ˜7J˜—Jšžœ˜J˜J˜J˜—J˜—…— G