diff options
author | Denys Vlasenko <dvlasenk@redhat.com> | 2011-02-03 15:37:56 +0100 |
---|---|---|
committer | Denys Vlasenko <dvlasenk@redhat.com> | 2011-02-03 15:37:56 +0100 |
commit | 8dc0fd1a9ff0f17d43abfe5c230612fd5aaaf35d (patch) | |
tree | 3725d272a986a2afafc7eeda68d9cd07b61c6526 /src | |
parent | 3fc1eead9f0671c87e62b2059eb0332760eb2e88 (diff) | |
download | abrt-8dc0fd1a9ff0f17d43abfe5c230612fd5aaaf35d.tar.gz abrt-8dc0fd1a9ff0f17d43abfe5c230612fd5aaaf35d.tar.xz abrt-8dc0fd1a9ff0f17d43abfe5c230612fd5aaaf35d.zip |
in bz/rhts description, list attachments and their sizes
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/make_descr.c | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/src/lib/make_descr.c b/src/lib/make_descr.c index d1209101..56f6a9a7 100644 --- a/src/lib/make_descr.c +++ b/src/lib/make_descr.c @@ -126,6 +126,7 @@ char* make_description_bz(crash_data_t *crash_data) g_hash_table_iter_init(&iter, crash_data); while (g_hash_table_iter_next(&iter, (void**)&name, (void**)&value)) { + struct stat statbuf; unsigned flags = value->flags; const char *content = value->content; if (flags & CD_FLAG_TXT) @@ -167,13 +168,33 @@ char* make_description_bz(crash_data_t *crash_data) strbuf_append_str(buf_dsc, tmp); free(tmp); - } else { - bool was_multiline = 0; - char *dsc = NULL; - add_content(&was_multiline, &dsc, "Attached file", name); - strbuf_append_str(buf_dsc, dsc); - free(dsc); } + else + { + statbuf.st_size = strlen(content); + goto add_attachment_info; + } + } + if (flags & CD_FLAG_BIN) + { + /* In many cases, it is useful to know how big binary files are + * (for example, helps with diagnosing bug upload problems) + */ + if (stat(content, &statbuf) != 0) + statbuf.st_size = (off_t) -1; + + add_attachment_info: ; + char *descr; + if (statbuf.st_size >= 0) + descr = xasprintf("%s, %llu bytes", name, (long long)statbuf.st_size); + else + descr = xstrdup(name); + bool was_multiline = 0; + char *tmp = NULL; + add_content(&was_multiline, &tmp, "Attached file", descr); + free(descr); + strbuf_append_str(buf_dsc, tmp); + free(tmp); } } |