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 <steadmon@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
829594677c
commit
8c4870029d
@ -424,6 +424,7 @@ int send_pack(struct send_pack_args *args,
|
|||||||
int use_sideband = 0;
|
int use_sideband = 0;
|
||||||
int quiet_supported = 0;
|
int quiet_supported = 0;
|
||||||
int agent_supported = 0;
|
int agent_supported = 0;
|
||||||
|
int advertise_sid = 0;
|
||||||
int use_atomic = 0;
|
int use_atomic = 0;
|
||||||
int atomic_supported = 0;
|
int atomic_supported = 0;
|
||||||
int use_push_options = 0;
|
int use_push_options = 0;
|
||||||
@ -435,6 +436,8 @@ int send_pack(struct send_pack_args *args,
|
|||||||
const char *push_cert_nonce = NULL;
|
const char *push_cert_nonce = NULL;
|
||||||
struct packet_reader reader;
|
struct packet_reader reader;
|
||||||
|
|
||||||
|
git_config_get_bool("transfer.advertisesid", &advertise_sid);
|
||||||
|
|
||||||
/* Does the other end support the reporting? */
|
/* Does the other end support the reporting? */
|
||||||
if (server_supports("report-status-v2"))
|
if (server_supports("report-status-v2"))
|
||||||
status_report = 2;
|
status_report = 2;
|
||||||
@ -450,6 +453,8 @@ int send_pack(struct send_pack_args *args,
|
|||||||
quiet_supported = 1;
|
quiet_supported = 1;
|
||||||
if (server_supports("agent"))
|
if (server_supports("agent"))
|
||||||
agent_supported = 1;
|
agent_supported = 1;
|
||||||
|
if (!server_supports("session-id"))
|
||||||
|
advertise_sid = 0;
|
||||||
if (server_supports("no-thin"))
|
if (server_supports("no-thin"))
|
||||||
args->use_thin_pack = 0;
|
args->use_thin_pack = 0;
|
||||||
if (server_supports("atomic"))
|
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);
|
strbuf_addf(&cap_buf, " object-format=%s", the_hash_algo->name);
|
||||||
if (agent_supported)
|
if (agent_supported)
|
||||||
strbuf_addf(&cap_buf, " agent=%s", git_user_agent_sanitized());
|
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
|
* NEEDSWORK: why does delete-refs have to be so specific to
|
||||||
|
Loading…
Reference in New Issue
Block a user