FreeBSD support
[lcore.git] / binipstuff.pas
index 1d7a7c23c74fbfeef33d2ee4f091fe256f03a905..9f84721a27c0e58bcbba33e049a0470d9a77c57f 100644 (file)
@@ -88,7 +88,12 @@ type
   {$endif}\r
 \r
   TLInetSockAddr4 = packed Record\r
+   {$ifdef bsd}\r
+    len:byte;\r
+    family:byte;\r
+   {$else}\r
     family:Word;\r
+   {$endif}\r
     port  :Word;\r
     addr  :uint32;\r
     pad   :array [0..7] of byte;   //zipplet 20170204 - originally this was 1..8 for some reason\r
@@ -96,7 +101,12 @@ type
   \r
   {$ifdef ipv6}\r
     TLInetSockAddr6 = packed record\r
+     {$ifdef bsd}\r
+      sin6_len:byte;\r
+      sin6_family:byte;\r
+     {$else}\r
       sin6_family: word;\r
+     {$endif}\r
       sin6_port: word;\r
       sin6_flowinfo: uint32;\r
       sin6_addr: tin6_addr;\r
@@ -206,6 +216,9 @@ begin
   fillchar(inaddr,sizeof(inaddr),0);\r
   //writeln('converted address '+addr+' to binip '+ipbintostr(biniptemp));\r
   if addr.family = AF_INET then begin\r
+    {$ifdef bsd}\r
+    inAddr.InAddr.Len := sizeof(tlinetsockaddr4);\r
+    {$endif}\r
     inAddr.InAddr.family:=AF_INET;\r
     inAddr.InAddr.port:=htons(strtointdef(port,0));\r
     inAddr.InAddr.addr:=addr.ip;\r
@@ -213,6 +226,9 @@ begin
   end else\r
   {$ifdef ipv6}\r
   if addr.family = AF_INET6 then begin\r
+    {$ifdef bsd}\r
+    inAddr.InAddr6.sin6_len := sizeof(tlinetsockaddr6);\r
+    {$endif}\r
     inAddr.InAddr6.sin6_family:=AF_INET6;\r
     inAddr.InAddr6.sin6_port:=htons(strtointdef(port,0));\r
     inAddr.InAddr6.sin6_addr:=addr.ip6;\r