On Tuesday, December 22, 2015, Bruno Jesus <00cpxxx@gmail.com> wrote:
On Tue, Dec 22, 2015 at 7:58 PM, Hans Leidekker <hans@codeweavers.com> wrote:
> Hi Bruno,
>>+        if (wsa->addr->sa_family == WS_AF_INET)
>>+        {
>>+            /* When the target IPv4 address ends in 255 we must always send it as
>>+             * a broadcast. Trying to send the packet without setting SO_BROADCAST
>>+             * results in EACCES, to avoid that we will manually enable the flag
>>+             * and send the packet, after that we will restore the disabled flag
>>+             * behavior. This is the most common estimate as the broadcast address
>>+             * should actually be calculated using the netmask for the interface. */
>
> It should really be calculated using the netmask, sending a broadcast packet here
> is wrong if the user is not in a /24 network.


Hi, Hans. Thanks for the reply, I'll update the patch when I have time.

Actually I have no idea how to do this because I would have to check every UDP packet destination against all configured IP broadcast address, this would slow down too much.

And caching the broadcast addresses would introduce the problem of watching for network changes.

I believe that the current solution is ok for most use cases and I don't know if it is an issue to attempt a broadcast to a non broadcast address, I have to check that.

Or I am missing something obvious that someone will tell me in the next reply ;-)

Best wishes, 
Bruno