IPNameUdp.mesa
Copyright © 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
DIRECTORY
Rope USING [ROPE],
IPDefs USING [Address],
UDP USING [BodyRec];
IPNameUdp: CEDAR DEFINITIONS =
BEGIN
ROPE: TYPE = Rope.ROPE;
DomainHeader: TYPE = MACHINE DEPENDENT RECORD [
Defaults optimized for querys
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): BOOLFALSE,
tc (1: 6..6): BOOLFALSE,
rd (1: 7..7): BOOLFALSE,
ra (1: 8..8): BOOLFALSE,
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;
Raised when no more udp data
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.