aboutsummaryrefslogtreecommitdiffstats
path: root/fetch-pack.c
diff options
context:
space:
mode:
authorJonathan Tan <jonathantanmy@google.com>2019-05-22 13:08:22 -0700
committerJunio C Hamano <gitster@pobox.com>2019-05-28 11:01:07 -0700
commit5b204b7df3ed7e97040d40db9d7c31a0a645af15 (patch)
tree08a296c472b4d725cf946d08c05732e6124d364d /fetch-pack.c
parent6e98305985555ced61971ca0170dd976554193c0 (diff)
downloadgit-5b204b7df3ed7e97040d40db9d7c31a0a645af15.tar.gz
fetch-pack: send server options after command
Currently, if any server options are specified during a protocol v2 fetch, server options will be sent before "command=fetch". Write server options to the request buffer in send_fetch_request() so that the components of the request are sent in the correct order. The protocol documentation states that the command must come first. The Git server implementation in serve.c (see process_request() in that file) tolerates any order of command and capability, which is perhaps why we haven't noticed this. This was noticed when testing against a JGit server implementation, which follows the documentation in this regard. Signed-off-by: Jonathan Tan <jonathantanmy@google.com> Acked-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'fetch-pack.c')
-rw-r--r--fetch-pack.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fetch-pack.c b/fetch-pack.c
index 812be15d7e..46651b16bc 100644
--- a/fetch-pack.c
+++ b/fetch-pack.c
@@ -1111,7 +1111,7 @@ static int send_fetch_request(struct fetch_negotiator *negotiator, int fd_out,
server_supports_v2("server-option", 1)) {
int i;
for (i = 0; i < args->server_options->nr; i++)
- packet_write_fmt(fd_out, "server-option=%s",
+ packet_buf_write(&req_buf, "server-option=%s",
args->server_options->items[i].string);
}