others to "remote_protocol". Downgrade the protocol_version if the
remote_protocol" is lower. Output the protocol values if the verbose
level is large enough. Exit if the user tried to force a protocol
value that is not within the range that we can handle. Fixed the
output of the "very old version of rsync" message to output the right
Client/Server string.
we no longer use non-blocking IO, instead it uses select a lot more,
being careful to always allow for reading whenever a valid read fd is
available and chcking timeouts.
also split the file io calls into fileio.c
in 3 ways:
1) the realloc is done on a list of pointers, not a list of structures
2) only the basename of the file is now kept in the file struct an a
util function f_name() is now used to access the full name when
required.
3) pointers to directory names are re-used
hopefully I haven't broken anything. This will need lots of testing.