opkg: include the current url being downloaded in the progress callback
authorticktock35 <ticktock35@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358>
Mon, 15 Dec 2008 04:18:54 +0000 (04:18 +0000)
committerticktock35 <ticktock35@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358>
Mon, 15 Dec 2008 04:18:54 +0000 (04:18 +0000)
git-svn-id: http://opkg.googlecode.com/svn/trunk@13 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358

libopkg.h
opkg_download.c

index 429e3a1..274e37b 100644 (file)
--- a/libopkg.h
+++ b/libopkg.h
@@ -36,7 +36,7 @@ typedef int (*opkg_list_callback)(char *name, char *desc, char *version,
 typedef int (*opkg_status_callback)(char *name, int istatus, char *desc,
        void *userdata);
 typedef char* (*opkg_response_callback)(char *question);
-typedef void (*opkg_download_progress_callback)(int percent);
+typedef void (*opkg_download_progress_callback)(int percent, char *url);
 
 extern int opkg_op(int argc, char *argv[]); /* opkglib.c */
 extern int opkg_init (opkg_message_callback mcall, 
index c0a66fe..3370b1f 100644 (file)
@@ -34,11 +34,11 @@ opkg_download_progress_callback opkg_cb_download_progress = NULL;
 #endif
 
 int
-curl_progress_func (void* data,
-                         double t, /* dltotal */
-                         double d, /* dlnow */
-                         double ultotal,
-                         double ulnow)
+curl_progress_func (char* url,
+                   double t, /* dltotal */
+                   double d, /* dlnow */
+                   double ultotal,
+                   double ulnow)
 {
     int i;
     int p = d*100/t;
@@ -46,7 +46,7 @@ curl_progress_func (void* data,
 #ifdef OPKG_LIB
     if (opkg_cb_download_progress)
     {
-       opkg_cb_download_progress (p);
+       opkg_cb_download_progress (p, url);
        return 0;
     }
 #endif
@@ -142,7 +142,8 @@ int opkg_download(opkg_conf_t *conf, const char *src, const char *dest_file_name
     {
        curl_easy_setopt (curl, CURLOPT_URL, src);
        curl_easy_setopt (curl, CURLOPT_WRITEDATA, file);
-       curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 0);
+       curl_easy_setopt (curl, CURLOPT_NOPROGRESS, 0);
+       curl_easy_setopt (curl, CURLOPT_PROGRESSDATA, src);
        curl_easy_setopt (curl, CURLOPT_PROGRESSFUNCTION, curl_progress_func);
        if (conf->http_proxy || conf->ftp_proxy)
        {