Commit 8a9709de authored by Wayne Davison's avatar Wayne Davison

Changed most instances of "remote_version" to "protocol_version", and

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.
parent daa598df
......@@ -25,6 +25,8 @@
#include "rsync.h"
int remote_protocol = 0;
extern int am_server;
extern int preserve_links;
......@@ -37,7 +39,7 @@ extern int always_checksum;
extern int checksum_seed;
extern int remote_version;
extern int protocol_version;
extern int verbose;
extern int read_batch; /* dw */
......@@ -45,25 +47,42 @@ extern int write_batch; /* dw */
void setup_protocol(int f_out,int f_in)
{
if (remote_version == 0) {
if (remote_protocol == 0) {
if (am_server) {
remote_version = read_int(f_in);
write_int(f_out,PROTOCOL_VERSION);
remote_protocol = read_int(f_in);
write_int(f_out, protocol_version);
} else {
write_int(f_out,PROTOCOL_VERSION);
remote_version = read_int(f_in);
write_int(f_out, protocol_version);
remote_protocol = read_int(f_in);
}
if (protocol_version > remote_protocol)
protocol_version = remote_protocol;
}
if (remote_version < MIN_PROTOCOL_VERSION ||
remote_version > MAX_PROTOCOL_VERSION) {
if (verbose > 3) {
rprintf(FINFO, "(%s) Protocol versions: remote=%d, negotiated=%d\n",
am_server? "Server" : "Client", remote_protocol, protocol_version);
}
if (remote_protocol < MIN_PROTOCOL_VERSION
|| remote_protocol > MAX_PROTOCOL_VERSION) {
rprintf(FERROR,"protocol version mismatch - is your shell clean?\n");
rprintf(FERROR,"(see the rsync man page for an explanation)\n");
exit_cleanup(RERR_PROTOCOL);
}
if (remote_version < OLD_PROTOCOL_VERSION)
}
if (remote_protocol < OLD_PROTOCOL_VERSION) {
rprintf(FINFO,"%s is very old version of rsync, upgrade recommended.\n",
am_server ? "Server" : "Client");
am_server? "Client" : "Server");
}
if (protocol_version < MIN_PROTOCOL_VERSION) {
rprintf(FERROR, "--protocol must be at least %d on the %s.\n",
MIN_PROTOCOL_VERSION, am_server? "Server" : "Client");
exit_cleanup(RERR_PROTOCOL);
}
if (protocol_version > PROTOCOL_VERSION) {
rprintf(FERROR, "--protocol must be no more than %d on the %s.\n",
PROTOCOL_VERSION, am_server? "Server" : "Client");
exit_cleanup(RERR_PROTOCOL);
}
if (am_server) {
if (read_batch || write_batch) /* dw */
......@@ -75,4 +94,3 @@ void setup_protocol(int f_out,int f_in)
checksum_seed = read_int(f_in);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment