* 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
#else
{
int res;
- char *wgetcmd;
- char *wgetopts;
- wgetopts = getenv("OPKG_WGETOPTS");
- sprintf_alloc(&wgetcmd, "wget -q %s%s -O \"%s\" \"%s\"",
- (conf->http_proxy || conf->ftp_proxy) ? "-Y on " : "",
- (wgetopts!=NULL) ? wgetopts : "",
- tmp_file_location, src);
- opkg_message(conf, OPKG_INFO, "Executing: %s\n", wgetcmd);
- res = xsystem(wgetcmd);
- free(wgetcmd);
+ const char *argv[8];
+ int i = 0;
+
+ argv[i++] = "wget";
+ argv[i++] = "-q";
+ if (conf->http_proxy || conf->ftp_proxy) {
+ argv[i++] = "-Y";
+ argv[i++] = "on";
+ }
+ argv[i++] = "-O";
+ argv[i++] = tmp_file_location;
+ argv[i++] = src;
+ argv[i++] = NULL;
+ res = xsystem(argv);
+
if (res) {
opkg_message(conf, OPKG_ERROR, "Failed to download %s, error %d\n", src, res);
free(tmp_file_location);
if (err)
return err;
- err = pkg_init_from_file(pkg, tmp_file);
+ err = pkg_init_from_file(conf, pkg, tmp_file);
if (err)
return err;
|| strcmp(&url[strlen(url) - 4], IPKG_PKG_EXTENSION) == 0
|| strcmp(&url[strlen(url) - 4], DPKG_PKG_EXTENSION) == 0) {
- err = pkg_init_from_file(pkg, url);
+ err = pkg_init_from_file(conf, pkg, url);
if (err)
return err;
opkg_message(conf, OPKG_DEBUG2, "Package %s provided by hand (%s).\n", pkg->name,pkg->local_filename);
pkg = hash_insert_pkg(&conf->pkg_hash, pkg, 1,conf);
if (namep) {
- *namep = xstrdup(pkg->name);
+ *namep = pkg->name;
}
return 0;
}
#endif
#ifdef HAVE_CURL
-static void opkg_curl_cleanup(void){
+void opkg_curl_cleanup(void){
if(curl != NULL){
curl_easy_cleanup (curl);
curl = NULL;
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));