diff options
author | Wayne Davison <wayne@opencoder.net> | 2022-09-10 21:52:54 -0700 |
---|---|---|
committer | Wayne Davison <wayne@opencoder.net> | 2022-09-10 22:12:24 -0700 |
commit | a6a0d2f77c7d1f06829c301914585a3d873fcd39 (patch) | |
tree | 522a4ddf6f87a8578be88afea16c57f4f5f8e19e | |
parent | 418e38a8789fd9b668961f945382c78806f2fb20 (diff) | |
download | rsync-a6a0d2f77c7d1f06829c301914585a3d873fcd39.tar.gz |
Require a newer protocol to specify the digest list.
-rw-r--r-- | clientserver.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/clientserver.c b/clientserver.c index 7436d01e..9ad7eaf7 100644 --- a/clientserver.c +++ b/clientserver.c @@ -184,11 +184,11 @@ static int exchange_protocols(int f_in, int f_out, char *buf, size_t bufsiz, int } if (remote_sub < 0) { - if (remote_protocol == 30) { + if (remote_protocol >= 30) { if (am_client) - rprintf(FERROR, "rsync: server is speaking an incompatible beta of protocol 30\n"); + rprintf(FERROR, "rsync: the server omitted the subprotocol value: %s\n", buf); else - io_printf(f_out, "@ERROR: your client is speaking an incompatible beta of protocol 30\n"); + io_printf(f_out, "@ERROR: your client omitted the subprotocol value: %s\n", buf); return -1; } remote_sub = 0; @@ -200,6 +200,12 @@ static int exchange_protocols(int f_in, int f_out, char *buf, size_t bufsiz, int daemon_auth_choices = strdup(daemon_auth_choices + 1); if ((cp = strchr(daemon_auth_choices, '\n')) != NULL) *cp = '\0'; + } else if (remote_protocol > 31) { + if (am_client) + rprintf(FERROR, "rsync: the server omitted the digest name list: %s\n", buf); + else + io_printf(f_out, "@ERROR: your client omitted the digest name list: %s\n", buf); + return -1; } if (protocol_version > remote_protocol) { |