From 576705a6d8b7f46018d6522e8684ca147ab9c45f Mon Sep 17 00:00:00 2001 From: Miloslav Trmač Date: Tue, 24 Jul 2012 13:55:21 +0200 Subject: Initialize PID to "no value cached" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now syslog () without openlog () will include a correct PID value instead of 0. Also reset the cache on closelog (). Signed-off-by: Miloslav Trmač --- lib/umberlog.c | 4 ++-- t/test_umberlog.c | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/lib/umberlog.c b/lib/umberlog.c index 67ea63b..78f5510 100644 --- a/lib/umberlog.c +++ b/lib/umberlog.c @@ -77,7 +77,7 @@ static struct } ul_process_data = { PTHREAD_MUTEX_INITIALIZER, 0, LOG_USER, NULL, - 0, 0, 0, { 0, } + -1, 0, 0, { 0, } }; static __thread ul_buffer_t ul_buffer; @@ -124,7 +124,7 @@ ul_closelog (void) pthread_mutex_lock (&ul_process_data.lock); ul_process_data.ident = NULL; - ul_process_data.pid = 0; + ul_process_data.pid = -1; ul_process_data.gid = 0; ul_process_data.uid = 0; ul_process_data.hostname[0] = '\0'; diff --git a/t/test_umberlog.c b/t/test_umberlog.c index fdc48dc..aa50484 100644 --- a/t/test_umberlog.c +++ b/t/test_umberlog.c @@ -29,6 +29,22 @@ verify_value (struct json_object *jo, const char *key, ck_assert_str_eq (value, expected_value); } +static void +verify_value_differs (struct json_object *jo, const char *key, + const char *unexpected_value) +{ + struct json_object *o; + const char *value; + + o = json_object_object_get (jo, key); + + ck_assert (o != NULL); + + value = json_object_get_string (o); + + ck_assert_str_ne (value, unexpected_value); +} + static void verify_value_exists (struct json_object *jo, const char *key) { @@ -274,6 +290,7 @@ START_TEST (test_closelog) #else verify_value_missing (jo, "program"); #endif + verify_value_differs (jo, "pid", "0"); json_object_put (jo); } @@ -328,6 +345,7 @@ START_TEST (test_openlog_defaults) #else verify_value_missing (jo, "program"); #endif + verify_value_differs (jo, "pid", "0"); json_object_put (jo); closelog (); -- cgit