aboutsummaryrefslogtreecommitdiff
path: root/send-pack.c
diff options
context:
space:
mode:
Diffstat (limited to 'send-pack.c')
-rw-r--r--send-pack.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/send-pack.c b/send-pack.c
index ef93f33aa..d392f5b3a 100644
--- a/send-pack.c
+++ b/send-pack.c
@@ -225,9 +225,10 @@ static const char *next_line(const char *line, size_t len)
return nl + 1;
}
-static void generate_push_cert(struct strbuf *req_buf,
- const struct ref *remote_refs,
- struct send_pack_args *args)
+static int generate_push_cert(struct strbuf *req_buf,
+ const struct ref *remote_refs,
+ struct send_pack_args *args,
+ const char *cap_string)
{
const struct ref *ref;
char stamp[60];
@@ -256,7 +257,7 @@ static void generate_push_cert(struct strbuf *req_buf,
if (sign_buffer(&cert, &cert, signing_key))
die(_("failed to sign the push certificate"));
- packet_buf_write(req_buf, "push-cert\n");
+ packet_buf_write(req_buf, "push-cert%c%s", 0, cap_string);
for (cp = cert.buf; cp < cert.buf + cert.len; cp = np) {
np = next_line(cp, cert.buf + cert.len - cp);
packet_buf_write(req_buf,
@@ -267,6 +268,7 @@ static void generate_push_cert(struct strbuf *req_buf,
free_return:
free(signing_key);
strbuf_release(&cert);
+ return update_seen;
}
int send_pack(struct send_pack_args *args,
@@ -335,7 +337,8 @@ int send_pack(struct send_pack_args *args,
advertise_shallow_grafts_buf(&req_buf);
if (!args->dry_run && args->push_cert)
- generate_push_cert(&req_buf, remote_refs, args);
+ cmds_sent = generate_push_cert(&req_buf, remote_refs, args,
+ cap_buf.buf);
/*
* Clear the status for each ref and see if we need to send