On Wed, 2004-05-05 at 04:02, Paul Slootman wrote:
[snip]
> > I haven't really done any network programming, so I'm not exactly sure what's 
> > going on
> > in this section of the code, but it looks like rsync tries to set a flag on the 
> > IPV6
> > socket indicating that its only to be used for IPV6. In this case the IPV6 socket 
> > is for
> 
> Setting that flag appears to fail on your system, because no IPV6 is
> available perhaps? (It works on mine...)
> 
> If that's the root cause of the problem, skipping the IPV6 socket when
> that call fails should suffice. Try the followng patch.

That patch solves the problem. However, the weird thing is that my
system _does_ have IPV6 available:

[EMAIL PROTECTED] # ls /proc/sys/net
802  core  ethernet  ipv4  ipv6  token-ring  unix

So it would seem to me that we're really just solving a symptom here. Of
course, more error handling never seems wrong to me:)

A quick search on google for ipv6 programming found this:

IPV6_V6ONLY socket option implementation by kernel versions

But in Linux, IPV6_V6ONLY socket option does not exist in kernel2.4.20
or earlier, except for USAGI kernels. Therefore, you can't do a bind(2)
of IPv4/IPv6 wildcard address to the same port. Therefore, you would
bind(2) only IPv6 wildcard address, and handle IPv4 traffic via
IPv4-mapped address with the same socket.

<http://www.ipv6style.jp/en/apps/20030829/index.shtml>

And I am indeed running a 2.4.20 kernel. So maybe the configure script
needs to detect whether or not this flag is actually available (which I
thought was the point of the #ifdef), rather than trusting the fact that
the macro itself is defined. Otherwise, if IPV6 _is_ available, but
IPV6_IPV6ONLY option is not, using the patch you sent would cause us to
skip any IPV6 addresses that we want to bind to.

Greg

-- 
To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html

Reply via email to