From 8c4870029dd084bc030e1b5383fa13358bcce236 Mon Sep 17 00:00:00 2001 From: Josh Steadmon Date: Wed, 11 Nov 2020 15:29:33 -0800 Subject: send-pack: advertise session ID in capabilities When the server sent a session-id capability and transfer.advertiseSID is true, advertise send-pack's own session ID back to the server. Signed-off-by: Josh Steadmon Signed-off-by: Junio C Hamano --- send-pack.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'send-pack.c') diff --git a/send-pack.c b/send-pack.c index eb4a44270b..bda65c98f9 100644 --- a/send-pack.c +++ b/send-pack.c @@ -424,6 +424,7 @@ int send_pack(struct send_pack_args *args, int use_sideband = 0; int quiet_supported = 0; int agent_supported = 0; + int advertise_sid = 0; int use_atomic = 0; int atomic_supported = 0; int use_push_options = 0; @@ -435,6 +436,8 @@ int send_pack(struct send_pack_args *args, const char *push_cert_nonce = NULL; struct packet_reader reader; + git_config_get_bool("transfer.advertisesid", &advertise_sid); + /* Does the other end support the reporting? */ if (server_supports("report-status-v2")) status_report = 2; @@ -450,6 +453,8 @@ int send_pack(struct send_pack_args *args, quiet_supported = 1; if (server_supports("agent")) agent_supported = 1; + if (!server_supports("session-id")) + advertise_sid = 0; if (server_supports("no-thin")) args->use_thin_pack = 0; if (server_supports("atomic")) @@ -506,6 +511,8 @@ int send_pack(struct send_pack_args *args, strbuf_addf(&cap_buf, " object-format=%s", the_hash_algo->name); if (agent_supported) strbuf_addf(&cap_buf, " agent=%s", git_user_agent_sanitized()); + if (advertise_sid) + strbuf_addf(&cap_buf, " session-id=%s", trace2_session_id()); /* * NEEDSWORK: why does delete-refs have to be so specific to -- cgit v1.2.3