101 lines
4.3 KiB
Plaintext
101 lines
4.3 KiB
Plaintext
{*******************************************************}
|
|
{FDL Declarations}
|
|
{Examiner GPL Edition}
|
|
|
|
{*******************************************************}
|
|
|
|
|
|
{procedure Dns_Network_Receive.Receive_DNS_Packet_TCP}
|
|
|
|
|
|
title procedure receive_dns_packet_tcp;
|
|
|
|
function round__(real) : integer;
|
|
type dns_types__packet_length_range = integer;
|
|
type dns_types__packet_bytes_range = integer;
|
|
type dns_types__byte = integer;
|
|
type dns_types__unsigned_short = integer;
|
|
type dns_types__opcode_type = (dns_types__query,
|
|
dns_types__iquery, dns_types__status);
|
|
type dns_types__response_code = (dns_types__no_error,
|
|
dns_types__format_error, dns_types__server_failure,
|
|
dns_types__name_error, dns_types__not_implemented,
|
|
dns_types__refused);
|
|
type dns_types__header_type = record
|
|
messageid : integer;
|
|
qr : boolean;
|
|
opcode : dns_types__opcode_type;
|
|
aa : boolean;
|
|
tc : boolean;
|
|
rd : boolean;
|
|
ra : boolean;
|
|
res1 : boolean;
|
|
res2 : boolean;
|
|
res3 : boolean;
|
|
rcode : dns_types__response_code;
|
|
qdcount : integer;
|
|
ancount : integer;
|
|
nscount : integer;
|
|
arcount : integer
|
|
end;
|
|
type dns_types__bytes_array_type = array [integer] of integer;
|
|
type dns_types__dns_packet = record
|
|
header : dns_types__header_type;
|
|
bytes : dns_types__bytes_array_type
|
|
end;
|
|
type dns_types__dns_tcp_packet = record
|
|
length : integer;
|
|
rest : dns_types__dns_packet
|
|
end;
|
|
const dns_types__header_bits : integer = pending;
|
|
const dns_network__max_query_size : integer = pending;
|
|
const system__min_int : integer = pending;
|
|
const system__max_int : integer = pending;
|
|
const dns_types__response_code__base__first :
|
|
dns_types__response_code = pending;
|
|
const dns_types__response_code__base__last :
|
|
dns_types__response_code = pending;
|
|
const dns_types__opcode_type__base__first :
|
|
dns_types__opcode_type = pending;
|
|
const dns_types__opcode_type__base__last :
|
|
dns_types__opcode_type = pending;
|
|
const dns_types__unsigned_short__base__first : integer = pending;
|
|
const dns_types__unsigned_short__base__last : integer = pending;
|
|
const dns_types__byte__base__first : integer = pending;
|
|
const dns_types__byte__base__last : integer = pending;
|
|
const dns_types__packet_bytes_range__base__first : integer = pending;
|
|
const dns_types__packet_bytes_range__base__last : integer = pending;
|
|
const dns_types__packet_length_range__base__first : integer = pending;
|
|
const dns_types__packet_length_range__base__last : integer = pending;
|
|
const dns_types__dns_tcp_packet__size : integer = pending;
|
|
const dns_types__dns_packet__size : integer = pending;
|
|
const dns_types__header_type__size : integer = pending;
|
|
const dns_types__response_code__first :
|
|
dns_types__response_code = pending;
|
|
const dns_types__response_code__last : dns_types__response_code = pending;
|
|
const dns_types__response_code__size : integer = pending;
|
|
const dns_types__opcode_type__first : dns_types__opcode_type = pending;
|
|
const dns_types__opcode_type__last : dns_types__opcode_type = pending;
|
|
const dns_types__opcode_type__size : integer = pending;
|
|
const dns_types__unsigned_short__first : integer = pending;
|
|
const dns_types__unsigned_short__last : integer = pending;
|
|
const dns_types__unsigned_short__size : integer = pending;
|
|
const dns_types__byte__first : integer = pending;
|
|
const dns_types__byte__last : integer = pending;
|
|
const dns_types__byte__modulus : integer = pending;
|
|
const dns_types__byte__size : integer = pending;
|
|
const dns_types__packet_bytes_range__first : integer = pending;
|
|
const dns_types__packet_bytes_range__last : integer = pending;
|
|
const dns_types__packet_bytes_range__size : integer = pending;
|
|
const dns_types__packet_length_range__first : integer = pending;
|
|
const dns_types__packet_length_range__last : integer = pending;
|
|
const dns_types__packet_length_range__size : integer = pending;
|
|
var packet : dns_types__dns_tcp_packet;
|
|
var number_bytes : integer;
|
|
var failure : boolean;
|
|
var failure__1 : boolean;
|
|
var number_bytes__1 : integer;
|
|
var packet__1 : dns_types__dns_tcp_packet;
|
|
|
|
end;
|