summaryrefslogtreecommitdiff
path: root/server/modules/downloaders/curl/src/curl_download.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'server/modules/downloaders/curl/src/curl_download.cpp')
-rw-r--r--server/modules/downloaders/curl/src/curl_download.cpp20
1 files changed, 14 insertions, 6 deletions
diff --git a/server/modules/downloaders/curl/src/curl_download.cpp b/server/modules/downloaders/curl/src/curl_download.cpp
index d474464..16866b5 100644
--- a/server/modules/downloaders/curl/src/curl_download.cpp
+++ b/server/modules/downloaders/curl/src/curl_download.cpp
@@ -17,7 +17,7 @@ size_t curl_w_callback(char *ptr, size_t size, size_t nmemb, void *userdata)
return size_;
}
-curl_download::curl_download(std::map<std::string, std::string> params, core_api *a) : cancel_transfer(false), state(stopped)
+curl_download::curl_download(std::map<int, std::string> params, core_api *a) : cancel_transfer(false), state(stopped)
{
//for now we use single transfer connection for url
//TODO: support multiple connections in parallel for multithreaded download
@@ -25,11 +25,11 @@ curl_download::curl_download(std::map<std::string, std::string> params, core_api
if(!easy_handle)
; //TODO: handle error
- curl_easy_setopt(easy_handle, CURLOPT_URL, params["0"].c_str()); //Url as set in module_info
+ curl_easy_setopt(easy_handle, CURLOPT_URL, params[0].c_str()); //Url as set in module_info
curl_easy_setopt(easy_handle, CURLOPT_WRITEFUNCTION, curl_w_callback);
curl_easy_setopt(easy_handle, CURLOPT_WRITEDATA, this);
- if(!params["0"].empty())
- download_path = params["0"];
+ if(!params[1].empty())
+ download_path = params[1];
else
download_path = a->get_core_settings()["download_dir"];
//curl_easy_setopt(h, CURLOPT_DEFAULT_PROTOCOL, "http"); //require curl >= 7.45
@@ -37,17 +37,25 @@ curl_download::curl_download(std::map<std::string, std::string> params, core_api
}
-void curl_download::start()
+bool curl_download::start()
{
boost::thread(boost::bind(&curl_download::perform_internal, this));
state = running;
+ return true; //TODO:
}
-void curl_download::stop()
+bool curl_download::stop()
{
cancel_transfer = true;
+ return true; //TODO:
}
+bool curl_download::delete_download()
+{
+ cancel_transfer = true;
+ curl_easy_cleanup(easy_handle);
+ return true; //TODO:
+}
void curl_download::perform_internal()
{