diff options
author | Junio C Hamano <gitster@pobox.com> | 2021-06-14 13:33:26 +0900 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-06-14 13:33:26 +0900 |
commit | 4dd75a195b06680cf43dd7c116b53a561ae8d11c (patch) | |
tree | 726ee0fa30c14a172507e4453999a024e0173205 /fetch-pack.c | |
parent | Merge branch 'ds/write-index-with-hashfile-api' (diff) | |
parent | fetch-pack: signal v2 server that we are done making requests (diff) | |
download | tgif-4dd75a195b06680cf43dd7c116b53a561ae8d11c.tar.xz |
Merge branch 'jk/fetch-pack-v2-half-close-early'
"git fetch" over protocol v2 left its side of the socket open after
it finished speaking, which unnecessarily wasted the resource on
the other side.
* jk/fetch-pack-v2-half-close-early:
fetch-pack: signal v2 server that we are done making requests
Diffstat (limited to 'fetch-pack.c')
-rw-r--r-- | fetch-pack.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/fetch-pack.c b/fetch-pack.c index c135635e34..b0c7be717c 100644 --- a/fetch-pack.c +++ b/fetch-pack.c @@ -1645,6 +1645,15 @@ static struct ref *do_fetch_pack_v2(struct fetch_pack_args *args, if (process_section_header(&reader, "packfile-uris", 1)) receive_packfile_uris(&reader, &packfile_uris); process_section_header(&reader, "packfile", 0); + + /* + * this is the final request we'll make of the server; + * do a half-duplex shutdown to indicate that they can + * hang up as soon as the pack is sent. + */ + close(fd[1]); + fd[1] = -1; + if (get_pack(args, fd, pack_lockfiles, packfile_uris.nr ? &index_pack_args : NULL, sought, nr_sought, &fsck_options.gitmodules_found)) |