diff options
author | graham.gower <graham.gower@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358> | 2009-11-15 19:32:24 (EST) |
---|---|---|
committer | graham.gower <graham.gower@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358> | 2009-11-15 19:32:24 (EST) |
commit | 4b982619a3a275e7ee9d607c7e3eb9a348f8fe6b (patch) | |
tree | b6f5e4355db4fd9dc6af563ffe5d9d089156ccb9 | |
parent | 1d5ae88a857c30dfb860cefb59fdefcfcbc1035a (diff) |
atexit() isn't really appropriate for a library.
git-svn-id: http://opkg.googlecode.com/svn/trunk@313 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
-rw-r--r-- | libopkg/libopkg.c | 3 | ||||
-rw-r--r-- | libopkg/opkg.c | 3 | ||||
-rw-r--r-- | libopkg/opkg_download.c | 9 | ||||
-rw-r--r-- | libopkg/opkg_download.h | 3 |
4 files changed, 10 insertions, 8 deletions
diff --git a/libopkg/libopkg.c b/libopkg/libopkg.c index c73c4a3..37770eb 100644 --- a/libopkg/libopkg.c +++ b/libopkg/libopkg.c @@ -96,6 +96,9 @@ opkg_op (int argc, char *argv[]) err = opkg_cmd_exec (cmd, &opkg_conf, argc - optind, (const char **) (argv + optind), NULL); +#ifdef HAVE_CURL + opkg_curl_cleanup(); +#endif opkg_conf_deinit (&opkg_conf); return err; diff --git a/libopkg/opkg.c b/libopkg/opkg.c index 785d588..aea87fc 100644 --- a/libopkg/opkg.c +++ b/libopkg/opkg.c @@ -211,6 +211,9 @@ opkg_free (opkg_t *opkg) { opkg_assert (opkg != NULL); +#ifdef HAVE_CURL + opkg_curl_cleanup(); +#endif opkg_conf_deinit (opkg->conf); args_deinit (opkg->args); free (opkg->options); diff --git a/libopkg/opkg_download.c b/libopkg/opkg_download.c index ab21ae9..be3ae2a 100644 --- a/libopkg/opkg_download.c +++ b/libopkg/opkg_download.c @@ -68,7 +68,6 @@ static X509_STORE *setup_verify(opkg_conf_t *conf, char *CAfile, char *CApath); * each time */ static CURL *curl = NULL; -static void opkg_curl_cleanup(void); static CURL *opkg_curl_init(opkg_conf_t *conf, curl_progress_func cb, void *data); #endif @@ -530,7 +529,7 @@ end: #endif #ifdef HAVE_CURL -static void opkg_curl_cleanup(void){ +void opkg_curl_cleanup(void){ if(curl != NULL){ curl_easy_cleanup (curl); curl = NULL; @@ -635,12 +634,6 @@ static CURL *opkg_curl_init(opkg_conf_t *conf, curl_progress_func cb, void *data curl_easy_setopt(curl, CURLOPT_PROXYUSERPWD, userpwd); free (userpwd); } - - /* add curl cleanup callback */ - if(!atexit(opkg_curl_cleanup)){ - opkg_message(conf,OPKG_DEBUG, "Failed to register atexit curl cleanup function\n"); - } - } curl_easy_setopt (curl, CURLOPT_NOPROGRESS, (cb == NULL)); diff --git a/libopkg/opkg_download.h b/libopkg/opkg_download.h index 39cd9a6..10347ca 100644 --- a/libopkg/opkg_download.h +++ b/libopkg/opkg_download.h @@ -32,4 +32,7 @@ int opkg_download_pkg(opkg_conf_t *conf, pkg_t *pkg, const char *dir); int opkg_prepare_url_for_install(opkg_conf_t *conf, const char *url, char **namep); int opkg_verify_file (opkg_conf_t *conf, char *text_file, char *sig_file); +#ifdef HAVE_CURL +void opkg_curl_cleanup(void); +#endif #endif |