-  ipstrtobin(name,result);\r
-  if result.family <> 0 then exit; //it was an IP address, no need for dns\r
-                                   //lookup\r
-  {$ifdef win32}\r
-    if usewindns then begin\r
-      result := winforwardlookup(name,false,dummy);\r
-      exit;\r
+  ipstrtobin(name,biniptemp);\r
+  if biniptemp.family <> 0 then begin\r
+    result := biniplist_new;\r
+    biniplist_add(result,biniptemp);\r
+    exit; //it was an IP address, no need for dns\r
+  end;\r
+\r
+  {$ifdef mswindows}\r
+  if usewindns and (overridednsserver = '') 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
+    if (useaf = useaf_preferv4) then begin\r
+      {prefer mode: sort the IP's}\r
+      l := biniplist_new;\r
+      addipsoffamily(l,result,af_inet);\r
+      addipsoffamily(l,result,af_inet6);\r
+      result := l;\r
+    end;\r
+    if (useaf = useaf_preferv6) then begin\r
+      {prefer mode: sort the IP's}\r
+      l := biniplist_new;\r
+      addipsoffamily(l,result,af_inet6);\r
+      addipsoffamily(l,result,af_inet);\r
+      result := l;\r