summaryrefslogtreecommitdiff
path: root/TODO
diff options
context:
space:
mode:
authorMartin Pool <mbp@samba.org>2002-05-14 05:44:51 +0000
committerMartin Pool <mbp@samba.org>2002-05-14 05:44:51 +0000
commit411acbbc2ae9dcc5de4cf5cfcb588ef1aeee9bed (patch)
tree249674bc4259e9a84cb9b4b54fee736f323b9ca6 /TODO
parent32e83406c4e1a6face6088f7cb7d486577be2d6d (diff)
downloadrsync-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--TODO43
1 files changed, 29 insertions, 14 deletions
diff --git a/TODO b/TODO
index b369a960..aa08c864 100644
--- a/TODO
+++ b/TODO
@@ -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