Add an "unsafe" symlink to the symlink test case so we can see what happens.
[rsync/rsync.git] / TODO
diff --git a/TODO b/TODO
index da016f6..b001a79 100644 (file)
--- a/TODO
+++ b/TODO
@@ -16,21 +16,149 @@ Cross-test versions
   some testing and also be the most common case for having different
   versions and not being able to upgrade.
 
   some testing and also be the most common case for having different
   versions and not being able to upgrade.
 
+use chroot
+
+  If the platform doesn't support it, then don't even try.
+
+  If running as non-root, then don't fail, just give a warning.
+  (There was a thread about this a while ago?)
+
+    http://lists.samba.org/pipermail/rsync/2001-August/thread.html
+    http://lists.samba.org/pipermail/rsync/2001-September/thread.html
+
+--files-from
+
+  Avoids traversal.  Better option than a pile of --include statements
+  for people who want to generate the file list using a find(1)
+  command or a script.
+
+Performance
+
+  Traverse just one directory at a time.  Tridge says it's possible.
+  Can possibly also be smarter about memory use while looking for hard
+  links by reducing the refcount as we find alternative names.  In
+  fact at the moment the code seems to make a whole second copy of the
+  file list, which seems unnecessary.
+
+IPv6
+
+  Implement suggestions from http://www.kame.net/newsletter/19980604/
+  and ftp://ftp.iij.ad.jp/pub/RFC/rfc2553.txt
+
+  If a host has multiple addresses, then listen try to connect to all
+  in order until we get through.  (getaddrinfo may return multiple
+  addresses.)  This is kind of implemented already.
+
+  Possibly also when starting as a server we may need to listen on
+  multiple passive addresses.  This might be a bit harder, because we
+  may need to select on all of them.  Hm.
+
+  Define a syntax for IPv6 literal addresses.  Since they include
+  colons, they tend to break most naming systems, including ours.
+  Based on the HTTP IPv6 syntax, I think we should use
+     rsync://[::1]/foo/bar
+     [::1]::bar
+
+  which should just take a small change to the parser code.
+
+Errors
+
+  If we hang or get SIGINT, then explain where we were up to.  Perhaps
+  have a static buffer that contains the current function name, or
+  some kind of description of what we were trying to do.  This is a
+  little easier on people than needing to run strace/truss.
+
+  "The dungeon collapses!  You are killed."  Rather than "unexpected
+  eof" give a message that is more detailed if possible and also more
+  helpful.  
+
+File attributes
+
+  Device major/minor numbers should be at least 32 bits each.  See
+  http://lists.samba.org/pipermail/rsync/2001-November/005357.html
+
+  Transfer ACLs.  Need to think of a standard representation.
+  Probably better not to even try to convert between NT and POSIX.
+  Possibly can share some code with Samba.
+
+Empty directories
+
+  With the current common --include '*/' --exclude '*' pattern, people
+  can end up with many empty directories.  We might avoid this by
+  lazily creating such directories.
+
+zlib
+
+  Perhaps don't use our own zlib.  Will we actually be incompatible,
+  or just be slightly less efficient?
+
+logging
+
+  Perhaps flush stdout after each filename, so that people trying to
+  monitor progress in a log file can do so more easily.  See
+  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=48108
+
+rsyncd over ssh
+
+  There are already some patches to do this.
+
+PLATFORMS ------------------------------------------------------------
+
+Win32
+
+  Don't detach, because this messes up --srvany.
+
+  http://sources.redhat.com/ml/cygwin/2001-08/msg00234.html
+
+  According to "Effective TCP/IP Programming" (??) close() on a socket
+  has incorrect behaviour on Windows -- it sends a RST packet to the
+  other side, which gives a "connection reset by peer" error.  On that
+  platform we should probably do shutdown() instead.  However, on Unix
+  we are correct to call close(), because shutdown() discards
+  untransmitted data.
+
+DOCUMENTATION --------------------------------------------------------
+
+Update README
+
+BUILD FARM -----------------------------------------------------------
+
+Add machines
+
+  AMDAHL UTS (Dave Dykstra)
+
+  Cygwin (on different versions of Win32?)
+
+  HP-UX variants (via HP?)
+
+  SCO
 
 NICE -----------------------------------------------------------------
 
 
 NICE -----------------------------------------------------------------
 
-Merge IPv6 support ***
+SIGHUP
+
+  Re-read config file (just exec() ourselves) rather than exiting.
+
+--no-detach and --no-fork options
+
+  Very useful for debugging.  Also good when running under a
+  daemon-monitoring process that tries to restart the service when the
+  parent exits.
+
+hang/timeout friendliness
+
+  On 
 
 
-A patch is available at
+internationalization
 
 
-        ftp://ftp.kame.net/pub/kame/misc/rsync-244-v6-20000802.diff.gz
+  Change to using gettext().  Probably need to ship this for platforms
+  that don't have it.  
 
 
-but tridge reckons it needs to be cleaned up before it can be
-accepted.
+  Solicit translations.
 
 
-This is now on the track-kameipv6 branch and can be moved across any
-time.  The KAME people say that it should work on machines without
-IPv6 stacks.
+  Does anyone care?
 
 rsyncsh 
 
 
 rsyncsh