diff options
Diffstat (limited to 'server/modules/downloaders/curl/src/curl_download.cpp')
-rw-r--r-- | server/modules/downloaders/curl/src/curl_download.cpp | 20 |
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() { |