diff options
author | William Wennerström <william@wstrm.dev> | 2020-12-03 16:43:07 +0100 |
---|---|---|
committer | William Wennerström <william@wstrm.dev> | 2020-12-03 16:54:06 +0100 |
commit | 3a6597ee2967f91f49a1b4e17cf0595f37064587 (patch) | |
tree | 82d021e0c76b6980d908952edd4402272f14dcab /src/tools/aesgcm_download.c | |
parent | 1bb6cecee69d5167220a18cc4c125c215784de66 (diff) | |
download | profani-tty-3a6597ee2967f91f49a1b4e17cf0595f37064587.tar.gz |
Refactor for threaded external executable for built-in download methods
Diffstat (limited to 'src/tools/aesgcm_download.c')
-rw-r--r-- | src/tools/aesgcm_download.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/tools/aesgcm_download.c b/src/tools/aesgcm_download.c index d6a85d06..d75cabe3 100644 --- a/src/tools/aesgcm_download.c +++ b/src/tools/aesgcm_download.c @@ -47,6 +47,7 @@ #include <gio/gio.h> #include <pthread.h> #include <assert.h> +#include <errno.h> #include "profanity.h" #include "event/client_events.h" @@ -146,8 +147,28 @@ aesgcm_file_get(void* userdata) free(https_url); free(fragment); + if (aesgcm_dl->cmd_template != NULL) { + gchar** argv = format_call_external_argv(aesgcm_dl->cmd_template, + aesgcm_dl->url, + aesgcm_dl->filename); + + // TODO(wstrm): Log the error. + if (!call_external(argv, NULL, NULL)) { + http_print_transfer_update(aesgcm_dl->window, aesgcm_dl->url, + "Downloading '%s' failed: Unable to call " + "command '%s' with file at '%s' (%s).", + aesgcm_dl->url, + aesgcm_dl->cmd_template, + aesgcm_dl->filename, + "TODO(wstrm): Log the error"); + } + + g_strfreev(argv); + } + free(aesgcm_dl->filename); free(aesgcm_dl->url); + free(aesgcm_dl->cmd_template); free(aesgcm_dl); return NULL; |