[Spread-users] Bug in Spread for Windows?

Jonathan Stanton jonathan at cnds.jhu.edu
Tue Nov 14 11:40:18 EST 2006


Thanks for the detail, we'll try your configuration on our windows box to 
duplicate it. We may not have used the interface specifications on windows before 
(just using the default IN_ADDR_ANY bind) so that might be why we didn't see it.

I did read through the MSDN winsock docs last night and couldn't find anything 
about special handling of broadcast binds -- can you point me at something that 
explains this difference with BSD/sockets? (MSDN had a really nice page listing 
the differences that require some adaption like the error handling and 
closesocket, but I didn't see this one on that page).

Thanks,

Jonathan

On Tue, Nov 14, 2006 at 04:03:22PM +0200, Michael Chelnokov wrote:
> Hello Jonathan,
> 
> Thanks for your response.
> 
> As per spread.conf, I have to specify interfaces for the hosts.
> I tried two different environments:
> 
> 1. Computers with Windows XP SP2 and one network interface each, one subnet 
> (192.168.0.0/24):
> 
> Spread_Segment  192.168.0.255:2345 {
> 
> computer_11 192.168.0.11 {
> D 192.168.0.11
> C 127.0.0.1 }
> 
> computer_12 192.168.0.12 {
> D 192.168.0.12
> C 127.0.0.1 }
> 
> }
> 
> 2. Servers with Windows 2003 Standard Edition SP1 and two network 
> interfaces each, two private networks (192.168.11.0/24 and 192.168.12.0/24) 
> and two "public" networks (192.168.21.0/24 <- router -> 192.168.22.0/24):
> 
> Spread_Segment 192.168.11.255:2345 {
> 
> server_11 192.168.21.11 {
> D 192.168.21.11
> D 192.168.11.11
> C 127.0.0.1 }
> 
> server_12 192.168.21.12 {
> D 192.168.21.12
> D 192.168.11.12
> C 127.0.0.1 }
> 
> }
> 
> Spread_Segment 192.168.12.255:2345 {
> 
> server_13 192.168.22.13 {
> D 192.168.22.13
> D 192.168.12.13
> C 127.0.0.1 }
> 
> server_14 192.168.22.14 {
> D 192.168.22.14
> D 192.168.12.14
> C 127.0.0.1 }
> 
> }
> 
> In both cases the Spread daemon can not start because it tries to bind to a 
> broadcast address.
> I have tried the following binaries:
> - Spread 3.17.3 binaries from spread.org;
> - Spread 4.0.0rc2 built from sources by Visual Studio 2005 and with 
> recommendations from Win32BuildInstructions.pdf
> 
> I sure UDP broadcast packets normally work, I have tested them. Windows 
> does not replies to broadcast ping, but anyway, broadcast packets work both 
> with my simple test program and with patched Spread :-)
> I just disabled call to DL_init_channel( RECV_CHANNEL, My.port, 
> Bcast_address, Bcast_address ) in Net_init() and Spread is working fine.
> 
> In UNIX, a socket has to be bound to a broadcast address in order to 
> receive broadcast packets, it doesn't receive broadcast packets on a socket 
> bound to a regular address. I.e. it is needed to bind two sockets to two 
> addresses (192.168.0.255 and 192.168.0.11 in my 1st configuration for 
> server_11).
> In Windows, a socket can not be bound to a broadcast address, but a socket 
> bound to a regular address will receive broadcast packets. I.e. it is 
> enough to bind one socket to one address (192.168.0.11 in my 1st 
> configuration for server_11) to receive both unicast and broadcast packets. 
> A call to bind to 192.168.0.255 fails with error WSAEADDRNOTAVAIL.
> 
> Best regards,
> Michael Chelnokov.
> 
> ----- Original Message ----- 
> From: "Jonathan Stanton" <jonathan at cnds.jhu.edu>
> To: "Michael Chelnokov" <michelnok at mail.ru>
> Cc: <spread-users at lists.spread.org>
> Sent: Tuesday, November 14, 2006 11:00 AM
> Subject: Re: [Spread-users] Bug in Spread for Windows?
> 
> 
> >Hello,
> >
> >I have not seen this problem before and we do use windows occasionally, so 
> >it
> >should work.
> >
> >In your spread.conf file, did you configure any specific interfaces for 
> >the hosts
> >in your Spread_segment? Or did you just list one IP for each machine? (The 
> >reason
> >I ask is that if you specify specific interfaces, that causes the binds to 
> >be done
> >differently)
> >
> >Are you sure that broadcast packets normally work on your machine (you can 
> >ping the
> >broadcast address for your network and get replies from many other 
> >machines)? You
> >can also replace the broadcast address in spread.conf with an IP multicast 
> >address
> >and try that. Let us know if that works while broadcast doesn't.
> >
> >If you can also let us know exactly what version of windows you are using 
> >and how
> >you built spread (or where you got the binaries)
> >
> >Thanks,
> >
> >Jonathan
> 

-- 
-------------------------------------------------------
Jonathan R. Stanton         jonathan at cs.jhu.edu
Dept. of Computer Science   
Johns Hopkins University    
-------------------------------------------------------




More information about the Spread-users mailing list