diff options
author | Martin Pool <mbp@samba.org> | 2002-05-14 05:44:51 +0000 |
---|---|---|
committer | Martin Pool <mbp@samba.org> | 2002-05-14 05:44:51 +0000 |
commit | 411acbbc2ae9dcc5de4cf5cfcb588ef1aeee9bed (patch) | |
tree | 249674bc4259e9a84cb9b4b54fee736f323b9ca6 /TODO | |
parent | 32e83406c4e1a6face6088f7cb7d486577be2d6d (diff) | |
download | rsync-411acbbc2ae9dcc5de4cf5cfcb588ef1aeee9bed.tar.gz rsync-411acbbc2ae9dcc5de4cf5cfcb588ef1aeee9bed.tar.bz2 rsync-411acbbc2ae9dcc5de4cf5cfcb588ef1aeee9bed.zip |
Better notes about handling IPv6 on old machines
Diffstat (limited to 'TODO')
-rw-r--r-- | TODO | 43 |
1 files changed, 29 insertions, 14 deletions
@@ -313,24 +313,39 @@ Hard-link handling might need a little program to check whether several names refer to the same file. -IPv6 - Perhaps put back the old socket code; if on a machine that does not - properly support the getaddrinfo API, then use it. This is probably - much simpler than reimplementing it. - Alternatively, have two different files implementing the same - interface, and choose either the new or the old API. This is - probably necessary for systems that e.g. have IPv6, but - gethostbyaddr() can't handle it. The Linux manpage claims this is - currently the case. +Handling IPv6 on old machines - This might get us working again on RedHat 5 and similar systems. - Although the Kame patch seems like a good idea, in fact it is a much - broader interface than the relatively narrow "open by name", "accept - and log" interface that rsync uses internally, and it has the - disadvantage of clashing with half-arsed implementations of the API. + The KAME IPv6 patch is nice in theory but has proved a bit of a + nightmare in practice. The basic idea of their patch is that rsync + is rewritten to use the new getaddrinfo()/getnameinfo() interface, + rather than gethostbyname()/gethostbyaddr() as in rsync 2.4.6. + Systems that don't have the new interface are handled by providing + our own implementation in lib/, which is selectively linked in. + The problem with this is that it is really hard to get right on + platforms that have a half-working implementation, so redefining + these functions clashes with system headers, and leaving them out + breaks. This affects at least OSF/1, RedHat 5, and Cobalt, which + are moderately improtant. + + Perhaps the simplest solution would be to have two different files + implementing the same interface, and choose either the new or the + old API. This is probably necessary for systems that e.g. have + IPv6, but gethostbyaddr() can't handle it. The Linux manpage claims + this is currently the case. + + In fact, our internal sockets interface (things like + open_socket_out(), etc) is much narrower than the getaddrinfo() + interface, and so probably simpler to get right. In addition, the + old code is known to work well on old machines. + + We could drop the rather large lib/getaddrinfo files. + + +Other IPv6 stuff: + Implement suggestions from http://www.kame.net/newsletter/19980604/ and ftp://ftp.iij.ad.jp/pub/RFC/rfc2553.txt |