Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals   Related Pages  

Todo List

Global write_batch_csum_info(int *flist_entry, int flist_count, struct sum_struct *s)
This will break if s->count is ever larger than maxint. The batch code should probably be changed to consistently use the variable-length integer routines, which is probably a compatible change.

Global sum_update(char *p, int len)
Perhaps get rid of md and just pass in the address each time. Very slightly clearer and slower.

File flist.c
Get rid of the string_area optimization. Efficiently allocating blocks is the responsibility of the system's malloc library, not of rsync.

Global make_file(int f, char *fname, struct string_area **ap, int noexcludes)
There is a small optimization opportunity here to avoid stat()ing the file in some circumstances, which has a certain cost. We are called immediately after doing readdir(), and so we may already know the d_type of the file. We could for example avoid statting directories if we're not recursing, but this is not a very important case. Some systems may not have d_type.

Global sleep_for_bwlimit(int bytes_written)
Rather than sleeping after each write, it might be better to use some kind of averaging. The current algorithm seems to always use a bit less bandwidth than specified, because it doesn't make up for slow periods. But arguably this is a feature. In addition, we ought to take the time used to write the data into account.

Global io_write_phase
Perhaps we want some simple stack functionality, but there's no need to overdo it.

Global get_panic_action(void)
Perhaps use "screen -X" instead/as well, to help people debugging without easy access to X. Perhaps use an environment variable, or just call a script?

The /proc/ magic probably only works on Linux (and Solaris?) Can we be more portable?

Global kill_all(int sig)
It would be kind of nice to make sure that they are actually all our children before we kill them, because their pids may have been recycled by some other process. Perhaps when we wait for a child, we should remove it from this array. Alternatively we could perhaps use process groups, but I think that would not work on ancient Unix versions that don't support them.

Generated on Tue Apr 16 12:37:40 2002 for rsync by doxygen1.2.15