OVERVIEW   INDEX   DEPRECATED   HELP   CORRESPONDENCES   |
|
| Constants Summary | |
|---|---|
| tsc_CODEC_IELength | |
| Functions Summary | |
|---|---|
| f_DNS_Response | |
const integer tsc_CODEC_IELength := 0
template DNS_Header cr_DNS_Query_Header :=
{
id := ?,
qr := '0'B,
opcode := DNSOPCODE_QUERY_E,
aa := ?,
tc := ?,
rd := ?,
ra := ?,
z := '000'B,
rcode := ?,
qdcount := ?,
ancount := 0,
nscount := 0,
arcount := 0
};
template DNS_Question cr_DNS_Question(template (present) charstring p_DomainName,
template (present) DNS_TYPEValue p_QType) :=
{
qname := p_DomainName,
qtype := p_QType,
qclass := DNSCLASS_IN_E
};
template DNSMessage cr_DNS_Query(template (present) charstring p_DomainName,
template (present) DNS_TYPEValue p_QType) :=
{
dnsHeader := cr_DNS_Query_Header,
questions := { cr_DNS_Question(p_DomainName, p_QType) },
answer := omit,
authority := omit,
additional := omit
};
template (value) DNSMessage cs_DNS_Reponse(DNSMessage p_DNS_Query,
template (omit) DNS_RRs p_DNS_RRs) :=
{
dnsHeader := cs_DNS_Response_Header(p_DNS_Query.dnsHeader),
questions := p_DNS_Query.questions,
answer := p_DNS_RRs,
authority := p_DNS_RRs,
additional := omit
};
template (value) DNSMessage cs_DNS_Reponse_Error(DNSMessage p_DNS_Query,
DNS_RCODE p_DNS_RCODE) :=
{
dnsHeader := cds_DNS_Response_Header_Error(p_DNS_Query.dnsHeader, p_DNS_RCODE),
questions := p_DNS_Query.questions,
answer := omit,
authority := omit,
additional := omit
};
template (value) DNS_Header cs_DNS_Response_Header(DNS_Header p_DNS_Query_Header) :=
{
id := p_DNS_Query_Header.id,
qr := '1'B,
opcode := p_DNS_Query_Header.opcode,
aa := '1'B,
tc := '0'B,
rd := p_DNS_Query_Header.rd,
ra := '0'B,
z := '000'B,
rcode := DNSRCODE_NoError_E,
qdcount := p_DNS_Query_Header.qdcount,
ancount := 1,
nscount := 1,
arcount := 0
};
template (value) DNS_Header cds_DNS_Response_Header_Error(DNS_Header p_DNS_Query_Header,
DNS_RCODE p_DNS_RCODE)
modifies cs_DNS_Response_Header :=
{
rcode := p_DNS_RCODE,
ancount := 0,
nscount := 0
};
template (value) DNS_RR cs_DNS_RR(charstring p_Name,
DNS_TYPEValue p_RRType,
template (value) DNS_RDATAu p_RData) :=
{
name := p_Name,
rrtype := p_RRType,
class := DNSCLASS_IN_E,
ttl := 300,
rdlength := lengthof(encvalue(p_RData)) / 8,
rdata := p_RData
};
template (value) DNS_RDATAu cs_DNS_RDATAu_A(O4_Type p_IPv4Addr) :=
{
a := {
ipv4addr := p_IPv4Addr
}
};
template (value) DNS_RDATAu cs_DNS_RDATAu_NAPTR(charstring p_P_CSCF_DomainName) :=
{
naptr := {
order := 10,
preference := 10,
flags := "S",
services := "SIP+D2U",
dnrr_regexp := "",
replacement := "_sip._udp." & p_P_CSCF_DomainName
}
};
template (value) DNS_RDATAu cs_DNS_RDATAu_AAAA(O16_Type p_IPv6Addr) :=
{
aaaa := {
ipv6addr := p_IPv6Addr
}
};
template (value) DNS_RDATAu cs_DNS_RDATAu_SRV(integer p_Port_ps_NoSec,
charstring p_P_CSCF_DomainName) :=
{
srv := {
priority := 10,
weight := 10,
srvport := p_Port_ps_NoSec,
target := p_P_CSCF_DomainName
}
};
function f_DNS_Response(DNSMessage p_DNS_Query,
charstring p_P_CSCF_IPAddr,
charstring p_P_CSCF_DomainName,
integer p_Port_ps_NoSec) return template (omit) DNSMessage