X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/76076c4bbd066f56b35e1e08c8b88605b4edc615..ea2111d10a10a164334eff3b621ed7e630404345:/compat.c diff --git a/compat.c b/compat.c index ea9b67df..a8bcd480 100644 --- a/compat.c +++ b/compat.c @@ -40,35 +40,35 @@ extern int verbose; void setup_protocol(int f_out,int f_in) { - if (am_server) { - remote_version = read_int(f_in); - write_int(f_out,PROTOCOL_VERSION); - write_flush(f_out); - } else { - write_int(f_out,PROTOCOL_VERSION); - write_flush(f_out); - remote_version = read_int(f_in); - } + if (remote_version == 0) { + if (am_server) { + remote_version = read_int(f_in); + write_int(f_out,PROTOCOL_VERSION); + } else { + write_int(f_out,PROTOCOL_VERSION); + remote_version = read_int(f_in); + } + } - if (remote_version < MIN_PROTOCOL_VERSION || - remote_version > MAX_PROTOCOL_VERSION) { - fprintf(FERROR,"protocol version mismatch - is your shell clean?\n"); - exit_cleanup(1); - } - - if (verbose > 2) - fprintf(FINFO, "local_version=%d remote_version=%d\n", - PROTOCOL_VERSION, remote_version); - - if (remote_version >= 12) { - if (am_server) { - checksum_seed = time(NULL); - write_int(f_out,checksum_seed); - } else { - checksum_seed = read_int(f_in); - } - } - - checksum_init(); + if (remote_version < MIN_PROTOCOL_VERSION || + remote_version > MAX_PROTOCOL_VERSION) { + rprintf(FERROR,"protocol version mismatch - is your shell clean?\n"); + exit_cleanup(1); + } + + if (verbose > 2) + rprintf(FINFO, "local_version=%d remote_version=%d\n", + PROTOCOL_VERSION, remote_version); + + if (remote_version >= 12) { + if (am_server) { + checksum_seed = time(NULL); + write_int(f_out,checksum_seed); + } else { + checksum_seed = read_int(f_in); + } + } + + checksum_init(); }