diff options
Diffstat (limited to 'src/tools')
-rw-r--r-- | src/tools/http_upload.c | 21 | ||||
-rw-r--r-- | src/tools/http_upload.h | 5 |
2 files changed, 24 insertions, 2 deletions
diff --git a/src/tools/http_upload.c b/src/tools/http_upload.c index 79ed006c..f126a72d 100644 --- a/src/tools/http_upload.c +++ b/src/tools/http_upload.c @@ -65,6 +65,7 @@ struct curl_data_t { size_t size; }; +GSList *upload_processes = NULL; static int _xferinfo(void *userdata, curl_off_t dltotal, curl_off_t dlnow, curl_off_t ultotal, curl_off_t ulnow) @@ -332,3 +333,23 @@ off_t file_size(const char* const filename) stat(filename, &st); return st.st_size; } + +void +http_upload_cancel_processes(ProfWin *window) +{ + GSList *upload_process = upload_processes; + while (upload_process) { + HTTPUpload *upload = upload_process->data; + if (upload->window == window) { + upload->cancel = 1; + break; + } + upload_process = g_slist_next(upload_process); + } +} + +void +http_upload_add_upload(HTTPUpload *upload) +{ + upload_processes = g_slist_append(upload_processes, upload); +} diff --git a/src/tools/http_upload.h b/src/tools/http_upload.h index b9b46ca7..60b1ea82 100644 --- a/src/tools/http_upload.h +++ b/src/tools/http_upload.h @@ -57,11 +57,12 @@ typedef struct http_upload_t { int cancel; } HTTPUpload; -GSList *upload_processes; - void* http_file_put(void *userdata); char* file_mime_type(const char* const file_name); off_t file_size(const char* const file_name); +void http_upload_cancel_processes(ProfWin *window); +void http_upload_add_upload(HTTPUpload *upload); + #endif |