snapshot: support tar signature for compressed tar

This adds support for kernel.org style signatures where the uncompressed
tar archive is signed and compressed later. The signature is valid for
all tar* snapshots.

We have a filter which snapshots may be generated and downloaded. This has
to allow tar signatures now even if tar itself is not allowed. To simplify
things we allow all signatures.

Signed-off-by: Christian Hesse <mail@eworm.de>
此提交包含在:
Christian Hesse
2018-06-07 21:31:28 +02:00
提交者 Jason A. Donenfeld
父節點 b522a302c9
當前提交 7ba41963dd
共有 2 個檔案被更改,包括 10 行新增2 行删除

查看文件

@ -1114,7 +1114,7 @@ void cgit_compose_snapshot_prefix(struct strbuf *filename, const char *base,
void cgit_print_snapshot_links(const struct cgit_repo *repo, const char *ref,
const char *separator)
{
const struct cgit_snapshot_format* f;
const struct cgit_snapshot_format *f;
struct strbuf filename = STRBUF_INIT;
const char *basename;
size_t prefixlen;
@ -1139,6 +1139,13 @@ void cgit_print_snapshot_links(const struct cgit_repo *repo, const char *ref,
cgit_snapshot_link("sig", NULL, NULL, NULL, NULL,
filename.buf);
html(")");
} else if (starts_with(f->suffix, ".tar") && cgit_snapshot_get_sig(ref, &cgit_snapshot_formats[0])) {
strbuf_setlen(&filename, strlen(filename.buf) - strlen(f->suffix));
strbuf_addstr(&filename, ".tar.asc");
html(" (");
cgit_snapshot_link("sig", NULL, NULL, NULL, NULL,
filename.buf);
html(")");
}
html(separator);
}