|
Matej Habrnal |
0b651c |
From b38e21eac482e85de1f0b09d0ec7187844c1a19d Mon Sep 17 00:00:00 2001
|
|
Matej Habrnal |
0b651c |
From: Jakub Filak <jfilak@redhat.com>
|
|
Matej Habrnal |
0b651c |
Date: Mon, 15 Sep 2014 11:44:02 +0200
|
|
Matej Habrnal |
0b651c |
Subject: [PATCH] retrace-client: humanize sizes
|
|
Matej Habrnal |
0b651c |
|
|
Matej Habrnal |
0b651c |
G_FORMAT_SIZE_IEC_UNITS
|
|
Matej Habrnal |
0b651c |
|
|
Matej Habrnal |
0b651c |
use IEC (base 1024) units with "KiB"-style suffixes. IEC units should
|
|
Matej Habrnal |
0b651c |
only be used for reporting things with a strong "power of 2" basis, like
|
|
Matej Habrnal |
0b651c |
RAM sizes or RAID stripe sizes. Network and storage sizes should be
|
|
Matej Habrnal |
0b651c |
reported in the normal SI units.
|
|
Matej Habrnal |
0b651c |
|
|
Matej Habrnal |
0b651c |
Fixes #844
|
|
Matej Habrnal |
0b651c |
|
|
Matej Habrnal |
0b651c |
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
Matej Habrnal |
0b651c |
---
|
|
Matej Habrnal |
0b651c |
src/plugins/abrt-retrace-client.c | 36 +++++++++++++++++++++++-------------
|
|
Matej Habrnal |
0b651c |
1 file changed, 23 insertions(+), 13 deletions(-)
|
|
Matej Habrnal |
0b651c |
|
|
Matej Habrnal |
0b651c |
diff --git a/src/plugins/abrt-retrace-client.c b/src/plugins/abrt-retrace-client.c
|
|
Matej Habrnal |
0b651c |
index 60bbbc2..0b67773 100644
|
|
Matej Habrnal |
0b651c |
--- a/src/plugins/abrt-retrace-client.c
|
|
Matej Habrnal |
0b651c |
+++ b/src/plugins/abrt-retrace-client.c
|
|
Matej Habrnal |
0b651c |
@@ -511,10 +511,16 @@ static int create(bool delete_temp_archive,
|
|
Matej Habrnal |
0b651c |
if (unpacked_size > settings->max_unpacked_size)
|
|
Matej Habrnal |
0b651c |
{
|
|
Matej Habrnal |
0b651c |
alert_crash_too_large();
|
|
Matej Habrnal |
0b651c |
- error_msg_and_die(_("The size of your crash is %lld bytes, "
|
|
Matej Habrnal |
0b651c |
+
|
|
Matej Habrnal |
0b651c |
+ /* Leaking size and max_size in hope the memory will be released in
|
|
Matej Habrnal |
0b651c |
+ * error_msg_and_die() */
|
|
Matej Habrnal |
0b651c |
+ gchar *size = g_format_size_full(unpacked_size, G_FORMAT_SIZE_IEC_UNITS);
|
|
Matej Habrnal |
0b651c |
+ gchar *max_size = g_format_size_full(settings->max_unpacked_size, G_FORMAT_SIZE_IEC_UNITS);
|
|
Matej Habrnal |
0b651c |
+
|
|
Matej Habrnal |
0b651c |
+ error_msg_and_die(_("The size of your crash is %s, "
|
|
Matej Habrnal |
0b651c |
"but the retrace server only accepts "
|
|
Matej Habrnal |
0b651c |
- "crashes smaller or equal to %lld bytes."),
|
|
Matej Habrnal |
0b651c |
- unpacked_size, settings->max_unpacked_size);
|
|
Matej Habrnal |
0b651c |
+ "crashes smaller or equal to %s."),
|
|
Matej Habrnal |
0b651c |
+ size, max_size);
|
|
Matej Habrnal |
0b651c |
}
|
|
Matej Habrnal |
0b651c |
|
|
Matej Habrnal |
0b651c |
if (settings->supported_formats)
|
|
Matej Habrnal |
0b651c |
@@ -610,14 +616,19 @@ static int create(bool delete_temp_archive,
|
|
Matej Habrnal |
0b651c |
|
|
Matej Habrnal |
0b651c |
/* Get the file size. */
|
|
Matej Habrnal |
0b651c |
fstat(tempfd, &file_stat);
|
|
Matej Habrnal |
0b651c |
+ gchar *human_size = g_format_size_full((long long)file_stat.st_size, G_FORMAT_SIZE_IEC_UNITS);
|
|
Matej Habrnal |
0b651c |
if ((long long)file_stat.st_size > settings->max_packed_size)
|
|
Matej Habrnal |
0b651c |
{
|
|
Matej Habrnal |
0b651c |
alert_crash_too_large();
|
|
Matej Habrnal |
0b651c |
- error_msg_and_die(_("The size of your archive is %lld bytes, "
|
|
Matej Habrnal |
0b651c |
+
|
|
Matej Habrnal |
0b651c |
+ /* Leaking human_size and max_size in hope the memory will be released in
|
|
Matej Habrnal |
0b651c |
+ * error_msg_and_die() */
|
|
Matej Habrnal |
0b651c |
+ gchar *max_size = g_format_size_full(settings->max_packed_size, G_FORMAT_SIZE_IEC_UNITS);
|
|
Matej Habrnal |
0b651c |
+
|
|
Matej Habrnal |
0b651c |
+ error_msg_and_die(_("The size of your archive is %s, "
|
|
Matej Habrnal |
0b651c |
"but the retrace server only accepts "
|
|
Matej Habrnal |
0b651c |
- "archives smaller or equal %lld bytes."),
|
|
Matej Habrnal |
0b651c |
- (long long)file_stat.st_size,
|
|
Matej Habrnal |
0b651c |
- settings->max_packed_size);
|
|
Matej Habrnal |
0b651c |
+ "archives smaller or equal to %s."),
|
|
Matej Habrnal |
0b651c |
+ human_size, max_size);
|
|
Matej Habrnal |
0b651c |
}
|
|
Matej Habrnal |
0b651c |
|
|
Matej Habrnal |
0b651c |
free_settings(settings);
|
|
Matej Habrnal |
0b651c |
@@ -626,8 +637,8 @@ static int create(bool delete_temp_archive,
|
|
Matej Habrnal |
0b651c |
|
|
Matej Habrnal |
0b651c |
if (size_mb > 8) /* 8 MB - should be configurable */
|
|
Matej Habrnal |
0b651c |
{
|
|
Matej Habrnal |
0b651c |
- char *question = xasprintf(_("You are going to upload %d megabytes. "
|
|
Matej Habrnal |
0b651c |
- "Continue?"), size_mb);
|
|
Matej Habrnal |
0b651c |
+ char *question = xasprintf(_("You are going to upload %s. "
|
|
Matej Habrnal |
0b651c |
+ "Continue?"), human_size);
|
|
Matej Habrnal |
0b651c |
|
|
Matej Habrnal |
0b651c |
int response = ask_yes_no(question);
|
|
Matej Habrnal |
0b651c |
free(question);
|
|
Matej Habrnal |
0b651c |
@@ -669,13 +680,12 @@ static int create(bool delete_temp_archive,
|
|
Matej Habrnal |
0b651c |
|
|
Matej Habrnal |
0b651c |
if (delay)
|
|
Matej Habrnal |
0b651c |
{
|
|
Matej Habrnal |
0b651c |
- if (size_mb > 1)
|
|
Matej Habrnal |
0b651c |
- printf(_("Uploading %d megabytes\n"), size_mb);
|
|
Matej Habrnal |
0b651c |
- else
|
|
Matej Habrnal |
0b651c |
- printf(_("Uploading %lld bytes\n"), (long long)file_stat.st_size);
|
|
Matej Habrnal |
0b651c |
+ printf(_("Uploading %s\n"), human_size);
|
|
Matej Habrnal |
0b651c |
fflush(stdout);
|
|
Matej Habrnal |
0b651c |
}
|
|
Matej Habrnal |
0b651c |
|
|
Matej Habrnal |
0b651c |
+ g_free(human_size);
|
|
Matej Habrnal |
0b651c |
+
|
|
Matej Habrnal |
0b651c |
strbuf_free(http_request);
|
|
Matej Habrnal |
0b651c |
int result = 0;
|
|
Matej Habrnal |
0b651c |
int i;
|
|
Matej Habrnal |
0b651c |
--
|
|
Matej Habrnal |
0b651c |
1.9.3
|
|
Matej Habrnal |
0b651c |
|