//details as above\r
function reverselookup(ip:tbinip;timeout:integer):ansistring;\r
\r
+//function that the app can use to know whether the builtin or system resolver is being used\r
+function willusebuiltindns_sync:boolean;\r
\r
\r
const\r
\r
type tdnsstatearr=array[0..numsock-1] of tdnsstate;\r
\r
+\r
+function willusebuiltindns_sync:boolean;\r
+begin\r
+ result := false;\r
+ {$ifdef mswindows}\r
+ if usewindns and (overridednsserver = '') and not (hostsfile_disabled or hostsfile_onlylocalhost) then begin\r
+ //\r
+ end else\r
+ {$endif}\r
+ begin\r
+ {$ifdef syncdnscore}\r
+ result := true;\r
+ {$endif}\r
+ end;\r
+end;\r
+\r
+\r
+\r
{$ifdef syncdnscore}\r
\r
\r
end;\r
\r
{$ifdef mswindows}\r
- if usewindns then begin\r
+ if usewindns and (overridednsserver = '') and not (hostsfile_disabled or hostsfile_onlylocalhost) then begin\r
if (useaf = useaf_v4) then a := af_inet else if (useaf = useaf_v6) then a := af_inet6 else a := 0;\r
result := winforwardlookuplist(name,a,dummy);\r
{$ifdef ipv6}\r
{$ifdef syncdnscore}\r
{$ifdef ipv6}initpreferredmode;{$endif}\r
\r
+ if ((overridednsserver = '') or hostsfile_alsocustomserver) and (not hostsfile_disabled) then begin\r
+ //try a hosts file lookup\r
+ l := hostsfile_forwardlookuplist(name);\r
+ if (biniplist_getcount(l) > 0) then begin\r
+ result := l;\r
+ exit;\r
+ end;\r
+ end;\r
+\r
numsockused := 0;\r
\r
result := biniplist_new;\r
biniplist_addlist(result,state[1].resultlist);\r
{$endif}\r
end;\r
- {$endif}\r
+ {$else}\r
+ result := biniplist_new;\r
+ {$endif}\r
end;\r
end;\r
\r
state:tdnsstatearr;\r
begin\r
{$ifdef mswindows}\r
- if usewindns then begin\r
+ if usewindns and (overridednsserver = '') and not (hostsfile_disabled or hostsfile_onlylocalhost) then begin\r
result := winreverselookup(ip,dummy);\r
exit;\r
end;\r
{$endif}\r
{$ifdef syncdnscore}\r
+\r
+ if ((overridednsserver = '') or hostsfile_alsocustomserver) and (not hostsfile_disabled) then begin\r
+ //try a hosts file lookup\r
+ result := hostsfile_reverselookup(ip);\r
+ if (result <> '') then exit;\r
+ end;\r
+\r
setstate_reverse(ip,state[0]);\r
numsockused := 1;\r
resolveloop(timeout,state,numsockused);\r
result := state[0].resultstr;\r
+ {$else}\r
+ result := '';\r
{$endif}\r
end;\r
\r