summaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
authorDenys Vlasenko <dvlasenk@redhat.com>2011-02-28 17:16:28 +0100
committerDenys Vlasenko <dvlasenk@redhat.com>2011-02-28 17:16:28 +0100
commit39ce00f37c753ae7830a8f33631de468a0ec8212 (patch)
treeded3799f81e3d63c40b48427a33c5c87f1ab00dd /src/lib
parent1bbf4c784aa9fda4d137013ea584874d56d45a33 (diff)
downloadabrt-39ce00f37c753ae7830a8f33631de468a0ec8212.tar.gz
abrt-39ce00f37c753ae7830a8f33631de468a0ec8212.tar.xz
abrt-39ce00f37c753ae7830a8f33631de468a0ec8212.zip
show more useful columns in abrt-gtk; use human-readable time in dir names
For most users, "hostname" is the same for every crash (it is their hostname). Not every problem even has "Application" field ("low on disk space" problem, for example, doesn't), whereas any problem should have "Reason" field. For non-root, it is useful to see which dumps are in /var/spool/abrt (and aren't writable), and which are in $HOME/.abrt/spool. Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/Makefile.am3
-rw-r--r--src/lib/create_dump_dir.c5
-rw-r--r--src/lib/iso_date_string.c31
3 files changed, 36 insertions, 3 deletions
diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am
index 566d2931..bad3e63a 100644
--- a/src/lib/Makefile.am
+++ b/src/lib/Makefile.am
@@ -25,13 +25,14 @@ libreport_la_SOURCES = \
append_to_malloced_string.c \
overlapping_strcpy.c \
skip_whitespace.c \
+ glib_support.c \
+ iso_date_string.c \
strbuf.c strbuf.h \
xatonum.c \
spawn.c \
dirsize.c \
dump_dir.c \
get_cmdline.c \
- glib_support.c \
daemon_is_ok.c \
load_plugin_settings.c \
make_descr.c \
diff --git a/src/lib/create_dump_dir.c b/src/lib/create_dump_dir.c
index 2caf9af9..cbacdab6 100644
--- a/src/lib/create_dump_dir.c
+++ b/src/lib/create_dump_dir.c
@@ -31,8 +31,8 @@ static struct dump_dir *try_dd_create(const char *base_dir_name, const char *dir
struct dump_dir *create_dump_dir_from_crash_data(crash_data_t *crash_data, const char *base_dir_name)
{
- char dir_name[sizeof("abrt-tmp-%lu-%lu") + sizeof(long)*3 * 2];
- sprintf(dir_name, "abrt-tmp-%lu-%lu", (long)getpid(), (long)time(NULL));
+ char dir_name[sizeof("abrt-tmp-YYYY-MM-DD-HH:MM:SS-%lu") + sizeof(long)*3];
+ sprintf(dir_name, "abrt-tmp-%s-%lu", iso_date_string(NULL), (long)getpid());
struct dump_dir *dd;
if (base_dir_name)
@@ -53,6 +53,7 @@ struct dump_dir *create_dump_dir_from_crash_data(crash_data_t *crash_data, const
free(home);
}
}
+//TODO: try user's home dir obtained by getpwuid(getuid())?
/* Try /tmp */
if (!dd)
dd = try_dd_create("/tmp", dir_name);
diff --git a/src/lib/iso_date_string.c b/src/lib/iso_date_string.c
new file mode 100644
index 00000000..4600ff7f
--- /dev/null
+++ b/src/lib/iso_date_string.c
@@ -0,0 +1,31 @@
+/*
+ Copyright (C) 2011 ABRT team
+ Copyright (C) 2011 RedHat Inc
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+#include "abrtlib.h"
+
+char *iso_date_string(time_t *pt)
+{
+ static char buf[sizeof("YYYY-MM-DD-HH:MM:SS") + 4];
+
+ time_t t;
+ struct tm *ptm = localtime(pt ? pt : (time(&t), &t));
+ strftime(buf, sizeof(buf), "%Y-%m-%d-%H:%M:%S", ptm);
+
+ return buf;
+}