diff options
-rw-r--r-- | src/charon/daemon.c | 1 | ||||
-rw-r--r-- | src/libstrongswan/utils/fetcher.c | 15 | ||||
-rw-r--r-- | src/libstrongswan/utils/fetcher.h | 9 |
3 files changed, 24 insertions, 1 deletions
diff --git a/src/charon/daemon.c b/src/charon/daemon.c index e2f079d5e..05acd36bf 100644 --- a/src/charon/daemon.c +++ b/src/charon/daemon.c @@ -505,6 +505,7 @@ int main(int argc, char *argv[]) run(private_charon); eap_method_unload(); + fetcher_finalize(); /* normal termination, cleanup and exit */ destroy(private_charon); unlink(PID_FILE); diff --git a/src/libstrongswan/utils/fetcher.c b/src/libstrongswan/utils/fetcher.c index 6cc89a009..f5cd342b9 100644 --- a/src/libstrongswan/utils/fetcher.c +++ b/src/libstrongswan/utils/fetcher.c @@ -173,7 +173,7 @@ void fetcher_initialize(void) #ifdef LIBCURL CURLcode res; - /* init libcurl */ + /* initialize libcurl */ DBG1("initializing libcurl"); res = curl_global_init(CURL_GLOBAL_NOTHING); if (res != CURLE_OK) @@ -182,3 +182,16 @@ void fetcher_initialize(void) } #endif /* LIBCURL */ } + +/** + * Described in header. + */ +void fetcher_finalize(void) +{ + #ifdef LIBCURL + /* finalize libcurl */ + DBG1("finalizing libcurl"); + curl_global_cleanup(); +#endif /* LIBCURL */ +} + diff --git a/src/libstrongswan/utils/fetcher.h b/src/libstrongswan/utils/fetcher.h index ca3918697..ea7dd22b8 100644 --- a/src/libstrongswan/utils/fetcher.h +++ b/src/libstrongswan/utils/fetcher.h @@ -83,4 +83,13 @@ fetcher_t* fetcher_create(const char *uri); */ void fetcher_initialize(void); +/** + * @brief Finalizes the fetcher_t class + * + * call this function only once befor exiting the main program + * + * @ingroup utils + */ +void fetcher_finalize(void); + #endif /*FETCHER_H_*/ |