reorganization of system dns servers code
[lcore.git] / dnssync.pas
old mode 100755 (executable)
new mode 100644 (file)
index a7ba714..1a506d5
@@ -26,24 +26,25 @@ interface
       fd_utils,\r
     {$endif}\r
     lcorernd,\r
-    sysutils;\r
+    sysutils,\r
+    ltimevalstuff;\r
 \r
 //convert a name to an IP\r
 //will return v4 or v6 depending on what seems favorable, or manual preference setting\r
 //on error the binip will have a family of 0 (other fiels are also currently\r
 //zeroed out but may be used for further error information in future)\r
 //timeout is in miliseconds, it is ignored when using windows dns\r
-function forwardlookup(name:string;timeout:integer):tbinip;\r
+function forwardlookup(name:ansistring;timeout:integer):tbinip;\r
 \r
 //convert a name to a list of all IP's returned\r
 //this returns both v4 and v6 IP's, or possibly only v4 or v6, depending on settings\r
 //on error, returns an empty list\r
-function forwardlookuplist(name:string;timeout:integer):tbiniplist;\r
+function forwardlookuplist(name:ansistring;timeout:integer):tbiniplist;\r
 \r
 \r
 //convert an IP to a name, on error a null string will be returned, other\r
 //details as above\r
-function reverselookup(ip:tbinip;timeout:integer):string;\r
+function reverselookup(ip:tbinip;timeout:integer):ansistring;\r
 \r
 \r
 \r
@@ -73,16 +74,15 @@ implementation
 {$endif}\r
 \r
 {$i unixstuff.inc}\r
-{$i ltimevalstuff.inc}\r
 \r
+\r
+{$ifdef syncdnscore}\r
 var\r
   numsockused:integer;\r
   fd:array[0..numsock-1] of integer;\r
   state:array[0..numsock-1] of tdnsstate;\r
   toaddr:array[0..numsock-1] of tbinip;\r
 \r
-{$ifdef syncdnscore}\r
-\r
 {$ifdef win32}\r
   const\r
     winsocket = 'wsock32.dll';\r
@@ -109,23 +109,22 @@ end;
 \r
 function sendquery(socknum:integer;const packet:tdnspacket;len:integer):boolean;\r
 var\r
-  a:integer;\r
-  addr       : string;\r
-  port       : string;\r
+  ip       : tbinip;\r
+  port       : ansistring;\r
   inaddr     : TInetSockAddrV;\r
 begin\r
 {  writeln('sendquery ',decodename(state.packet,state.packetlen,12,0,a),' ',state.requesttype);}\r
   result := false;\r
   if len = 0 then exit; {no packet}\r
 \r
-  if overridednsserver <> '' then addr := overridednsserver else addr := getcurrentsystemnameserver(id);\r
+  ip := getcurrentsystemnameserverbin(id);\r
 \r
   {$ifdef ipv6}{$ifdef win32}\r
   if toaddr[socknum].family = AF_INET6 then if (useaf = 0) then useaf := useaf_preferv6;\r
   {$endif}{$endif}\r
 \r
   port := toport;\r
-  toaddr[socknum] := ipstrtobinf(addr);\r
+  toaddr[socknum] := ip;\r
   makeinaddrv(toaddr[socknum],port,inaddr);\r
 \r
   sendto(fd[socknum],packet,len,0,inaddr,inaddrsize(inaddr));\r
@@ -138,16 +137,14 @@ var
   inAddrtemp : TInetSockAddrV;\r
   a:integer;\r
   biniptemp:tbinip;\r
-  addr:string;\r
+\r
 begin\r
   //init both sockets smultaneously, always, so they get succesive fd's\r
   if fd[0] > 0 then exit;\r
 \r
-  if overridednsserver <> '' then addr := overridednsserver else addr := getcurrentsystemnameserver(id);\r
+  biniptemp := getcurrentsystemnameserverbin(id);\r
   //must get the DNS server here so we know to init v4 or v6\r
 \r
-  ipstrtobin(addr,biniptemp);\r
-\r
   if biniptemp.family = AF_INET6 then biniptemp := ipstrtobinf('::') else biniptemp := ipstrtobinf('0.0.0.0');\r
 \r
 \r
@@ -177,7 +174,6 @@ var
   currenttime  : integer;\r
 \r
   lag            : ttimeval;\r
-  currenttimeout : ttimeval;\r
   selecttimeout         : ttimeval;\r
   socknum:integer;\r
   needprocessing:array[0..numsock-1] of boolean;\r
@@ -188,7 +184,7 @@ var
   Srcx   : {$ifdef win32}sockaddr_in{$else}TInetSockAddrV{$endif} absolute Src;\r
   SrcLen : Integer;\r
   fromip:tbinip;\r
-  fromport:string;\r
+  fromport:ansistring;\r
 \r
 begin\r
   if timeout < mintimeout then timeout := defaulttimeout;\r
@@ -257,7 +253,7 @@ begin
         fillchar(state[socknum].recvpacket,sizeof(state[socknum].recvpacket),0);\r
         msectotimeval(lag,(currenttime-sendquerytime[socknum]) and tsmask);\r
 \r
-        if overridednsserver = '' then reportlag(id,(lag.tv_sec*1000000)+lag.tv_usec);\r
+        reportlag(id,(lag.tv_sec*1000000)+lag.tv_usec);\r
 \r
         SrcLen := SizeOf(Src);\r
         state[socknum].recvpacketlen := recvfrom(fd[socknum],state[socknum].recvpacket, SizeOf(state[socknum].recvpacket),0,Srcx,SrcLen);\r
@@ -280,7 +276,7 @@ begin
 \r
       currenttime := getts;\r
 \r
-      if overridednsserver = '' then reportlag(id,-1);\r
+      reportlag(id,-1);\r
       if (currenttime >= endtime) and ((not wrapmode) or (currenttime < starttime)) then begin\r
         exit;\r
       end else begin\r
@@ -296,10 +292,10 @@ end;
 \r
 \r
 \r
-function forwardlookuplist(name:string;timeout:integer):tbiniplist;\r
+function forwardlookuplist(name:ansistring;timeout:integer):tbiniplist;\r
 var\r
   dummy : integer;\r
-  a,b:integer;\r
+  a:integer;\r
   biniptemp:tbinip;\r
   l:tbiniplist;\r
 begin\r
@@ -367,7 +363,7 @@ begin
   end;\r
 end;\r
 \r
-function forwardlookup(name:string;timeout:integer):tbinip;\r
+function forwardlookup(name:ansistring;timeout:integer):tbinip;\r
 var\r
   listtemp:tbiniplist;\r
 begin\r
@@ -375,7 +371,7 @@ begin
   result := biniplist_get(listtemp,0);\r
 end;\r
 \r
-function reverselookup(ip:tbinip;timeout:integer):string;\r
+function reverselookup(ip:tbinip;timeout:integer):ansistring;\r
 var\r
   dummy : integer;\r
 begin\r