Blob Blame History Raw
From 52bc62513f23a7a379ba48dc2895626cf842bb1a Mon Sep 17 00:00:00 2001
From: Matej Habrnal <mhabrnal@redhat.com>
Date: Thu, 15 Jun 2017 17:12:53 +0200
Subject: [PATCH 10/14] dd: extend create_dump_dir to allow set pid in dumpdir
 name

Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
---
 src/include/dump_dir.h    | 3 +++
 src/lib/create_dump_dir.c | 9 +++++++--
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/include/dump_dir.h b/src/include/dump_dir.h
index fb3a470..793caf4 100644
--- a/src/include/dump_dir.h
+++ b/src/include/dump_dir.h
@@ -486,6 +486,9 @@ typedef int (*save_data_call_back)(struct dump_dir *, void *args);
 struct dump_dir *create_dump_dir(const char *base_dir_name, const char *type,
         uid_t uid, save_data_call_back save_data, void *args);
 
+struct dump_dir *create_dump_dir_ext(const char *base_dir_name, const char *type,
+        pid_t pid, uid_t uid, save_data_call_back save_data, void *args);
+
 /* Creates a new archive from the dump directory contents
  *
  * The dd argument must be opened for reading.
diff --git a/src/lib/create_dump_dir.c b/src/lib/create_dump_dir.c
index 1c6f1fc..d690c78 100644
--- a/src/lib/create_dump_dir.c
+++ b/src/lib/create_dump_dir.c
@@ -42,7 +42,7 @@ static struct dump_dir *try_dd_create(const char *base_dir_name, const char *dir
     return dd;
 }
 
-struct dump_dir *create_dump_dir(const char *base_dir_name, const char *type, uid_t uid, save_data_call_back save_data, void *args)
+struct dump_dir *create_dump_dir_ext(const char *base_dir_name, const char *type, pid_t pid, uid_t uid, save_data_call_back save_data, void *args)
 {
     INITIALIZE_LIBREPORT();
 
@@ -59,7 +59,7 @@ struct dump_dir *create_dump_dir(const char *base_dir_name, const char *type, ui
         return NULL;
     }
 
-    char *problem_id = xasprintf("%s-%s.%ld-%lu"NEW_PD_SUFFIX, type, iso_date_string(&(tv.tv_sec)), (long)tv.tv_usec, (long)getpid());
+    char *problem_id = xasprintf("%s-%s.%ld-%lu"NEW_PD_SUFFIX, type, iso_date_string(&(tv.tv_sec)), (long)tv.tv_usec, (long)pid);
 
     log_info("Saving to %s/%s with uid %d", base_dir_name, problem_id, uid);
 
@@ -151,6 +151,11 @@ struct dump_dir *create_dump_dir(const char *base_dir_name, const char *type, ui
     return dd;
 }
 
+struct dump_dir *create_dump_dir(const char *base_dir_name, const char *type, uid_t uid, save_data_call_back save_data, void *args)
+{
+    return create_dump_dir_ext(base_dir_name, type, getpid(), uid, save_data, args);
+}
+
 int save_problem_data_in_dump_dir(struct dump_dir *dd, problem_data_t *problem_data)
 {
     INITIALIZE_LIBREPORT();
-- 
2.9.5