diff options
Diffstat (limited to 'server/modules/downloaders/curl/main.cpp')
-rw-r--r-- | server/modules/downloaders/curl/main.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/server/modules/downloaders/curl/main.cpp b/server/modules/downloaders/curl/main.cpp index 667f4a3..46b6ee7 100644 --- a/server/modules/downloaders/curl/main.cpp +++ b/server/modules/downloaders/curl/main.cpp @@ -227,6 +227,23 @@ bool downloader::delete_download(int download_id, bool delete_data) { delete downloads[download_id]; downloads.erase(download_id); + //metadata cleanup + { + //TODO: handle errors + if(api->metadata_remove(this, compute_var_name(download_id, "name"))) + { + if(api->metadata_remove(this, compute_var_name(download_id, "download_path"))) + { + char param_name[16]; + for(int i = 0;; i++) + { + snprintf(param_name, 15, "param_%d", i); + if(!api->metadata_remove(this, compute_var_name(download_id, param_name))) + break; + } + } + } + } } //TODO: return true; @@ -278,7 +295,7 @@ bool downloader::metadata_drop(int download_id, std::string var) if(!var.empty()) { downloads[download_id]->metadata.erase(var); - api->metadata_remove(this, compute_var_name(download_id, var)); + return api->metadata_remove(this, compute_var_name(download_id, var)); } else { |