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 | 
