aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/charon/daemon.c1
-rw-r--r--src/libstrongswan/utils/fetcher.c15
-rw-r--r--src/libstrongswan/utils/fetcher.h9
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_*/