this version of unitwindowobject allows for creating a descendant with different...
[lcore.git] / lsocket.pas
index 642ec9a0cfe4c80e339ad34993d9969b5b5f8e10..6a1ce0be96b19ea5607b76cc35568de8abcd64a2 100755 (executable)
@@ -419,6 +419,7 @@ begin
   if (addr = '::') and (origaddr = '') and (fdhandlein < 0) then begin\r
     {writeln('failed to create an IPV6 socket with error ',socketerror,'. trying to create an IPV4 one instead');}\r
     addr := '0.0.0.0';\r
   if (addr = '::') and (origaddr = '') and (fdhandlein < 0) then begin\r
     {writeln('failed to create an IPV6 socket with error ',socketerror,'. trying to create an IPV4 one instead');}\r
     addr := '0.0.0.0';\r
+    biniptemp := ipstrtobinf(addr);\r
     fdhandlein := socket(PF_INET,socktype,0);\r
   end;\r
   {$endif}\r
     fdhandlein := socket(PF_INET,socktype,0);\r
   end;\r
   {$endif}\r
@@ -448,6 +449,9 @@ begin
           \r
         end;\r
       end;\r
           \r
         end;\r
       end;\r
+    {$else}\r
+      SetSockOpt(fdhandlein, SOL_SOCKET, SO_REUSEADDR, 'TRUE', Length('TRUE'));\r
+\r
     {$endif}\r
     localaddr := addr;\r
     localport := port;\r
     {$endif}\r
     localaddr := addr;\r
     localport := port;\r
@@ -586,7 +590,7 @@ begin
       destx := {$ifdef win32}winsock.pSockAddr{$else}pInetSockAddrV{$endif}(@dest)\r
     end;\r
   {$else}\r
       destx := {$ifdef win32}winsock.pSockAddr{$else}pInetSockAddrV{$endif}(@dest)\r
     end;\r
   {$else}\r
-    destx := {$ifdef win32}winsock.pSockAddr{$else}pInetSockAddrV{$endif}(@dest)\r
+    destx := {$ifdef win32}winsock.pSockAddr{$else}pInetSockAddrV{$endif}(@dest);\r
   {$endif}\r
 \r
   result := {$ifdef win32}winsock.sendto{$else}system_sendto{$endif}(self.fdhandleout,data^,len,0,destx^,destlen);\r
   {$endif}\r
 \r
   result := {$ifdef win32}winsock.sendto{$else}system_sendto{$endif}(self.fdhandleout,data^,len,0,destx^,destlen);\r