\r
uses binipstuff,classes,pgtypes,lcorernd;\r
\r
-var usewindns : boolean = {$ifdef win32}true{$else}false{$endif};\r
+var usewindns : boolean = {$ifdef mswindows}true{$else}false{$endif};\r
{hint to users of this unit that they should use windows dns instead.\r
May be disabled by applications if desired. (e.g. if setting a custom\r
dnsserverlist).\r
querytype_txt=16;\r
querytype_spf=99;\r
maxrecursion=50;\r
- maxrrofakind=20;\r
+ maxrrofakind=32;\r
+ {the maximum number of RR of a kind of purely an extra sanity check and could be omitted.\r
+ before, i set it to 20, but valid replies can have more. dnscore only does udp requests,\r
+ and ordinary DNS, so up to 512 bytes. the maximum number of A records that fits seems to be 29}\r
\r
retryafter=300000; //microseconds must be less than one second;\r
timeoutlag=1000000000; // penalty value to be treated as lag in the event of a timeout (microseconds)\r
state.numrr2 := 0;\r
for a := 0 to 3 do begin\r
state.numrr1[a] := htons(state.recvpacket.rrcount[a]);\r
- if state.numrr1[a] > maxrrofakind then goto failure;\r
+ if state.numrr1[a] > maxrrofakind then begin\r
+ failurereason := 'exceeded maximum RR of a kind';\r
+ goto failure;\r
+ end;\r
inc(state.numrr2,state.numrr1[a]);\r
end;\r
\r