diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2023-10-26 19:53:29 -0400 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2023-10-26 19:53:29 -0400 |
commit | 17178535cc9df5e834dfd43e3b2b919e02e5798d (patch) | |
tree | 5e55e8b2c2453ccf6271b190cf45e90d2c25179d /src/download.c | |
download | stasis-17178535cc9df5e834dfd43e3b2b919e02e5798d.tar.gz |
Initial commit
Diffstat (limited to 'src/download.c')
-rw-r--r-- | src/download.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/download.c b/src/download.c new file mode 100644 index 0000000..42d1653 --- /dev/null +++ b/src/download.c @@ -0,0 +1,34 @@ +// +// Created by jhunk on 10/5/23. +// + +#include "download.h" + +size_t download_writer(void *fp, size_t size, size_t nmemb, void *stream) { + size_t bytes = fwrite(fp, size, nmemb, (FILE *) stream); + return bytes; +} + +int download(char *url, const char *filename) { + CURL *c; + FILE *fp; + + curl_global_init(CURL_GLOBAL_ALL); + c = curl_easy_init(); + curl_easy_setopt(c, CURLOPT_URL, url); + curl_easy_setopt(c, CURLOPT_WRITEFUNCTION, download_writer); + fp = fopen(filename, "wb"); + if (!fp) { + return 1; + } + //curl_easy_setopt(c, CURLOPT_VERBOSE, 0L); + curl_easy_setopt(c, CURLOPT_FOLLOWLOCATION, 1); + curl_easy_setopt(c, CURLOPT_NOPROGRESS, 0L); + curl_easy_setopt(c, CURLOPT_WRITEDATA, fp); + curl_easy_perform(c); + fclose(fp); + + curl_easy_cleanup(c); + curl_global_cleanup(); + return 0; +}
\ No newline at end of file |