getaddrinfo(), but only if a corresponding call to socket() returned one of
three *NOSUPPORT errno codes. A Redhat 6.2 system was observed returning
EINVAL instead so it never went on to try IPv4. This update adds EINVAL to
the list. Question: why not always continue through the list regardless of
what errno is?
isomorphic to sa_family etc from a struct sockaddr, not what they're
called. On some platforms they seem not to be called ss_family.
Rather than guess, we will try casting to a sockaddr and looking
through that -- I think this is what the RFC intends.
sockaddr_storage is not defined, then supply our own definition that
will hopefully satisfy RFC2553 but also compile on all supported
platforms.
Thankyou to YOSHIFUJI Hideaki, SUMIKAWA Munechika and Jun-ichiro
"itojun" Hagino.
opening an inbound socket, we might get several address results,
e.g. for the machine's ipv4 and ipv6 name.
If binding a wildcard, then any one of them should do. If an address
was specified but it's insufficiently specific then that's not our
fault.
However, some of the advertized addresses may not work because e.g. we
don't have IPv6 support in the kernel. In that case go on and try all
addresses until one succeeds.
or literal IP addresses to rsync, and if your platform supports them
they will be used. Also there are -4 and -6 command-line options to
choose the default address type. Thankyou!
instead of 200. Move the defines of True and False to rsync.h. Eliminate
the defines of BOOL in loadparm.c and params.c because it is already
defined in rsync.h. Changes suggested by Roman Gollent roman.gollent@wdr.com
Jason Andrade convinced me to add ftpd style logging of transfers,
enabled with a "transfer logging" option in rsyncd.conf
you can customise the format in log.c
a daemon. This prevents library functions (such as getopt) stuffing up
our protocol stream when errors are detected.
- defer the error message from the options parsing until after the
socket is multiplexed. This allows clients sending new options which
the remote server doesn't understand to get a sensible error message.
patch tries to address the problem in two ways:
1) reinstall the SIGCHLD handler before each fork
2) reap any children not caught by the handler using waitpid with
WNOHANG.
I expect this will fix the problem.
messages from the server when using the socket code.
I've doen a fair bit of testing and I don't seem to have broken
anything, but it is a very complex change. More testing needed!