summaryrefslogtreecommitdiff
path: root/ui-tree.c
diff options
context:
space:
mode:
authorGeorg Lukas <georg@op-co.de>2009-11-28 02:44:33 +0000
committerGeorg Lukas <georg@op-co.de>2009-11-28 02:44:33 +0000
commitef07ccc72da0270e9298c36046a0187dc359b0da (patch)
tree57a2ffdeb929d9b4ed44dfae3a1fb7ca550aac63 /ui-tree.c
parent545b5a5dcae2a0c322381493ee90f6c37353da9c (diff)
downloadcgit-ef07ccc72da0270e9298c36046a0187dc359b0da.tar
cgit-ef07ccc72da0270e9298c36046a0187dc359b0da.tar.gz
cgit-ef07ccc72da0270e9298c36046a0187dc359b0da.zip
"max-blob-size" config var to limit generated HTML size
Sometimes it is not feasible to generate the HTML pretty-print for large files, especially if a source-filter is involved or binary data is to be displayed. The "max-blob-size" config var allows to disable HTML output for blobs bigger than X KBytes. Plain downloads are not affected. Signed-off-by: Georg Lukas <georg@op-co.de>
Diffstat (limited to 'ui-tree.c')
-rw-r--r--ui-tree.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/ui-tree.c b/ui-tree.c
index f53ab64..f281937 100644
--- a/ui-tree.c
+++ b/ui-tree.c
@@ -107,6 +107,12 @@ static void print_object(const unsigned char *sha1, char *path, const char *base
curr_rev, path);
htmlf(")<br/>blob: %s\n", sha1_to_hex(sha1));
+ if (ctx.cfg.max_blob_size && size / 1024 > ctx.cfg.max_blob_size) {
+ htmlf("<div class='error'>blob size (%dKB) exceeds display size limit (%dKB).</div>",
+ size / 1024, ctx.cfg.max_blob_size);
+ return;
+ }
+
if (buffer_is_binary(buf, size))
print_binary_buffer(buf, size);
else