]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib: Add function to see if lib is initialized
authorAki Tuomi <aki.tuomi@dovecot.fi>
Mon, 31 Oct 2016 13:36:39 +0000 (15:36 +0200)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Wed, 9 Nov 2016 11:04:06 +0000 (13:04 +0200)
This is needed by test-lib to prevent double init/deinit.

src/lib/lib.c
src/lib/lib.h

index bea746e4e096fd458881f355fd9ec742f4a1c408..b0a4b63c32fd1b3598f5cebec86719c272ad0ca7 100644 (file)
@@ -10,6 +10,8 @@
 #include <unistd.h>
 #include <sys/time.h>
 
+static bool lib_initialized = FALSE;
+
 struct atexit_callback {
        int priority;
        lib_atexit_callback_t *callback;
@@ -116,6 +118,7 @@ void lib_atexit_run(void)
 void lib_init(void)
 {
        struct timeval tv;
+       i_assert(!lib_initialized);
 
        /* standard way to get rand() return different values. */
        if (gettimeofday(&tv, NULL) < 0)
@@ -124,10 +127,18 @@ void lib_init(void)
 
        data_stack_init();
        hostpid_init();
+       lib_initialized = TRUE;
+}
+
+bool lib_is_initialized(void)
+{
+       return lib_initialized;
 }
 
 void lib_deinit(void)
 {
+       i_assert(lib_initialized);
+       lib_initialized = FALSE;
        lib_atexit_run();
        ipwd_deinit();
        hostpid_deinit();
index 99623afb4f2dc998d37b8fd357a7e5327a219159..9a2eea9326561f20d2e950f9fadd907f55911adb 100644 (file)
@@ -76,6 +76,7 @@ void lib_atexit_priority(lib_atexit_callback_t *callback, int priority);
 void lib_atexit_run(void);
 
 void lib_init(void);
+bool lib_is_initialized(void);
 void lib_deinit(void);
 
 #endif