Fixed broadcast UDP sockets not working on windows
authorzipplet <zipplet@zipplet.co.uk>
Fri, 23 Jan 2009 00:36:13 +0000 (00:36 +0000)
committerzipplet <zipplet@zipplet.co.uk>
Fri, 23 Jan 2009 00:36:13 +0000 (00:36 +0000)
git-svn-id: file:///svnroot/lcore/trunk@25 b1de8a11-f9be-4011-bde0-cc7ace90066a

lsocket.pas

index cfa1bd13d83e347948df745d4c5eb9b391fac3a3..1dff390319609fdf9ce6bca435c7ddd02bd706d2 100755 (executable)
@@ -193,6 +193,8 @@ begin
     if dgram then begin\r
       {$ifndef win32}\r
         SetSocketOptions(fdhandleout, SOL_SOCKET, SO_BROADCAST, 'TRUE', Length('TRUE'));\r
     if dgram then begin\r
       {$ifndef win32}\r
         SetSocketOptions(fdhandleout, SOL_SOCKET, SO_BROADCAST, 'TRUE', Length('TRUE'));\r
+      {$else}\r
+        SetSockOpt(fdhandleout, SOL_SOCKET, SO_BROADCAST, 'TRUE', Length('TRUE'));\r
       {$endif}\r
       state := wsconnected;\r
       if assigned(onsessionconnected) then onsessionconnected(self,0);\r
       {$endif}\r
       state := wsconnected;\r
       if assigned(onsessionconnected) then onsessionconnected(self,0);\r
@@ -377,11 +379,14 @@ begin
     if not udp then begin\r
       {!!! allow custom queue length? default 5}\r
       if listenqueue = 0 then listenqueue := 5;\r
     if not udp then begin\r
       {!!! allow custom queue length? default 5}\r
       if listenqueue = 0 then listenqueue := 5;\r
-      If {$ifdef win32}winsock{$else}sockets{$endif}.Listen(fdhandlein,listenqueue)<>{$ifdef win32}0{$else}true{$endif} Then raise esocketexception.create('unable to listen');\r
+      If {$ifdef win32}winsock{$else}sockets{$endif}.Listen(fdhandlein,listenqueue)<>{$ifdef win32}0{$else}true{$endif} Then raise \r
+esocketexception.create('unable to listen');\r
       state := wsListening;\r
     end else begin\r
       {$ifndef win32}\r
         SetSocketOptions(fdhandleout, SOL_SOCKET, SO_BROADCAST, 'TRUE', Length('TRUE'));\r
       state := wsListening;\r
     end else begin\r
       {$ifndef win32}\r
         SetSocketOptions(fdhandleout, SOL_SOCKET, SO_BROADCAST, 'TRUE', Length('TRUE'));\r
+      {$else}\r
+        SetSockOpt(fdhandleout, SOL_SOCKET, SO_BROADCAST, 'TRUE', Length('TRUE'));\r
       {$endif}\r
       state := wsconnected;\r
     end;\r
       {$endif}\r
       state := wsconnected;\r
     end;\r