ipkg: replace wget with libcurl functions
authorticktock35 <ticktock35@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358>
Mon, 15 Dec 2008 04:15:16 +0000 (04:15 +0000)
committerticktock35 <ticktock35@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358>
Mon, 15 Dec 2008 04:15:16 +0000 (04:15 +0000)
git-svn-id: http://opkg.googlecode.com/svn/trunk@5 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358

Makefile.am
configure.ac
ipkg_download.c

index d876dd5fa335202c601db90a145d4e7fa2041c65..4f820d52a618a118f8780044f62f7051bf067cbf 100644 (file)
@@ -52,7 +52,7 @@ libipkg_include_HEADERS= \
 #\ replace/replace.h
 
 #libipkg_la_LIBADD = libbb/libbb.la replace/libreplace.a
-libipkg_la_LIBADD = libbb/libbb.la 
+libipkg_la_LIBADD = libbb/libbb.la $(CURL_LIBS)
 
 ipkg_core_sources = args.c args.h ipkg.c \
                    user.c user.h 
@@ -97,9 +97,9 @@ libipkg_la_SOURCES = $(ipkg_libcore_sources) $(ipkg_cmd_sources) $(ipkg_db_sourc
 
 ipkg_cl_SOURCES = ipkg-frontend.c
 
-libipkg_la_CFLAGS = -DIPKG_LIB $(ALL_CFLAGS)
+libipkg_la_CFLAGS = -DIPKG_LIB $(ALL_CFLAGS)  $(CURL_CFLAGS)
 
-ipkg_CFLAGS = $(ALL_CFLAGS)
+ipkg_CFLAGS = $(ALL_CFLAGS) $(CURL_CFLAGS)
 
 ipkg_cl_CFLAGS = -DIPKG_LIB $(ALL_CFLAGS)
 
index a5615ca2ce43f17a48b7036edfb99f53d63ce8ef..810db5c4480ff5df7ddf8f7bac2c6cf4bb99000c 100644 (file)
@@ -20,6 +20,7 @@ AM_PROG_INSTALL_STRIP
 AC_PROG_LIBTOOL
 
 # Checks for libraries (hah! ipkg is pretty much self-contained)
+PKG_CHECK_MODULES(CURL, libcurl)
 
 # Checks for header files
 AC_HEADER_DIRENT
index 6369008520ab656607125c61f368fec9205d8f7f..192c8b3271c5fe120f5405e9665a44dd52dd321b 100644 (file)
@@ -1,3 +1,4 @@
+/* vi: set noexpandtab sw=4 sts=4: */
 /* ipkg_download.c - the itsy package management system
 
    Carl D. Worth
@@ -15,6 +16,8 @@
    General Public License for more details.
 */
 
+#include <curl/curl.h>
+
 #include "ipkg.h"
 #include "ipkg_download.h"
 #include "ipkg_message.h"
@@ -69,6 +72,7 @@ int ipkg_download(ipkg_conf_t *conf, const char *src, const char *dest_file_name
     }
 
     /* XXX: BUG rewrite to use execvp or else busybox's internal wget -Jamey 7/23/2002 */ 
+#if 0
     sprintf_alloc(&cmd, "wget --passive-ftp %s %s%s %s%s %s -P %s %s",
                  (conf->http_proxy || conf->ftp_proxy) ? "--proxy=on" : "",
                  conf->proxy_user ? "--proxy-user=" : "",
@@ -91,6 +95,23 @@ int ipkg_download(ipkg_conf_t *conf, const char *src, const char *dest_file_name
        return EINVAL;
     }
     free(cmd);
+#endif
+    CURL *curl;
+    CURLcode res;
+    FILE * file = fopen (tmp_file_location, "w");
+    
+    curl = curl_easy_init ();
+    if (curl)
+    {
+       curl_easy_setopt (curl, CURLOPT_URL, src);
+       curl_easy_setopt (curl, CURLOPT_WRITEDATA, file);
+       res = curl_easy_perform (curl);
+       curl_easy_cleanup (curl);
+       fclose (file);
+
+    }
+    else
+       return -1;
 
     err = file_move(tmp_file_location, dest_file_name);