diff options
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/Makefile.am | 3 | ||||
-rw-r--r-- | src/lib/create_dump_dir.c | 5 | ||||
-rw-r--r-- | src/lib/iso_date_string.c | 31 |
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; +} |