Refining types style

This commit is contained in:
Fabian Stamm 2018-05-13 13:05:30 +02:00
parent 1b9e229823
commit 1ec4166854
1 changed files with 38 additions and 44 deletions

View File

@ -1,17 +1,16 @@
interface MessageHeader {
/**
* A 16 bit identifier assigned by the program that
* generates any kind of query. This identifier is copied
* the corresponding reply and can be used by the requester
* to match up replies to outstanding queries.
*/
ID: number
ID: number;
/**
* Defines if query or response
*/
QR: 0 | 1
QR: 0 | 1;
/**
* 4 Bit code, that defines type of query.
@ -21,49 +20,47 @@ interface MessageHeader {
* 3-15 reserved for future use
*/
OPCODE: number
/**
* Authorative Answer - only valid in responses and
* specifies that the responding name server is an
* specifies that the responding name server is an
* authority for the domain name in question section
*/
AA: 0 | 1
AA: 0 | 1;
/**
* Truncation - specifies that his message was truncated doe to
* length grater than permitted on the transaction channel
*
*
* WARNING: NOT IMPLEMENTED IN THIS APPLICATION
*/
TC: 0 | 1
TC: 0 | 1;
/**
* Recursion Desired - set in query and copied to response
* if is set, directs name server to pursue the query recursively
*
*
* WARNING: NOT IMPLEMENTED IN THIS APPLICATION
*/
RD: 0 | 1
RD: 0 | 1;
/**
* Recursion Available - will be cleared in response to
* show the client that recursion is not available
*/
RA: 0 | 1
RA: 0 | 1;
/**
* Reserved for future usage, must be 0 in all queries
*/
Z: 0
Z: 0;
AD: 0 | 1
CD: 0 | 1
AD: 0 | 1;
CD: 0 | 1;
/**
* Response Code - 4 bit field is part of response
*
*
* 0 No error condition
* 1 Format error - unable to interpret query
* 2 Server failure - internal problem
@ -72,106 +69,103 @@ interface MessageHeader {
* 5 Refused - Nameserver refuses request
* 6-15 Reserved for future usage
*/
RCODE: 0 | 1 | 2 | 3 | 4 | 5
RCODE: 0 | 1 | 2 | 3 | 4 | 5;
/**
* Number of entries in question section
* uint16
*/
QDCOUNT: number
QDCOUNT: number;
/**
* Number of entries in answer section
* uint16
*/
ANCOUNT: number
ANCOUNT: number;
/**
* Number of resource records in authority records section
* uint16
*/
NSCOUNT: number
NSCOUNT: number;
/**
* Number of resource records in additional records section
* uint16
*/
ARCOUNT: number
ARCOUNT: number;
}
interface MessageQuestion {
/**
* Domain name represented as sequence of labels
* Each label consists of a length octed followed
* by that number of octeds
*/
QNAME: string
QNAME: string;
/**
* Two octed code wich specifies the type of the query.
*/
QTYPE: number
QTYPE: number;
/**
* Two octed code that specifies the class of the Query
* IS for internet
* WARNING: ONLY IN IS SUPPORTED BY THIS APPLICATION
*/
QCLASS: number
QCLASS: number;
}
interface MessageRecourceRecord {
/**
* Domain name to wich resource record pertains
*/
NAME: string
NAME: string;
/**
* Two octets containing TT type code.
* Specifies meaning of data in RDATA field
*
*
* uint16
*/
TYPE: number
TYPE: number;
/**
* Two octets specifying class of RDATA field
*
*
* uint16
*/
CLASS: number
CLASS: number;
/**
* Specifies Time Interval (in seconds) that the record
* may be cached before discarded.
* may be cached before discarded.
* Zero values are not cached
*
*
* uint32
*/
TTL: number
TTL: number;
/**
* Length of RDATA field
*
*
* uint16
*/
RDLENGTH: number
RDLENGTH: number;
/**
* a variable length string of ectets taht describes
* the resource. The format is defined by TYPE and CLASS
* field.
*
* If TYPE is A and CLASS is IN, RDATA is a 4 octet
* field.
*
* If TYPE is A and CLASS is IN, RDATA is a 4 octet
* ARPA internet address.
*/
RDATA: Buffer
RDATA: Buffer;
}
interface Message {
header: MessageHeader
questions: MessageQuestion[]
header: MessageHeader;
questions: MessageQuestion[];
answers: MessageRecourceRecord[];
authorities: MessageRecourceRecord[];
additionals: MessageRecourceRecord[];
}
}