From: Wayne Davison Date: Wed, 24 Jun 2020 02:14:11 +0000 (-0700) Subject: Avoid negotiating a "none" choice by default X-Git-Tag: v3.2.2pre1~18 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f157ff3b3a306153d79d00e9367059c0d1c91ef9;p=thirdparty%2Frsync.git Avoid negotiating a "none" choice by default The client does not pass "none" as a negotiation choice unless it's from the user's environment list. The server still passes the "none" value to the client unless its environment var excludes it. --- diff --git a/compat.c b/compat.c index 4f225f29..074a86ab 100644 --- a/compat.c +++ b/compat.c @@ -379,7 +379,8 @@ void validate_choice_vs_env(int num1, int num2) /* The saw buffer is initialized and used to store ordinal values from 1 to N * for the order of the args in the array. If dup_markup == '\0', duplicates * are removed otherwise the char is prefixed to the duplicate term and, if it - * is an opening paren/bracket/brace, the matching closing char is suffixed. */ + * is an opening paren/bracket/brace, the matching closing char is suffixed. + * "none" is removed on the client side unless dup_markup != '\0'. */ int get_default_nno_list(struct name_num_obj *nno, char *to_buf, int to_buf_len, char dup_markup) { struct name_num_item *nni; @@ -401,6 +402,8 @@ int get_default_nno_list(struct name_num_obj *nno, char *to_buf, int to_buf_len, continue; delim = dup_markup; } + if (nni->num == 0 && !am_server && !dup_markup) + continue; if (len) to_buf[len++]= ' '; if (delim) {