From 7bf3c5b692f34bd6d9467ac3c651692c885a1d90 Mon Sep 17 00:00:00 2001 From: forever2k38 Date: Fri, 4 Sep 2026 12:45:43 +0200 Subject: filesystem fuckery --- src/download.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/download.c (limited to 'src/download.c') diff --git a/src/download.c b/src/download.c new file mode 100644 index 0000000..bb8365c --- /dev/null +++ b/src/download.c @@ -0,0 +1,40 @@ +#include "curl/curl.h" +#include "stdio.h" + +static size_t write_cb(char *ptr, size_t size, size_t nmemb, void *stream) { + size_t written = fwrite(ptr, size, nmemb, (FILE *)stream); + + return written; +} + +int pow_download_file(char *path, char *url) { + FILE *pagefile; + CURL *curl = curl_easy_init(); + + if (!curl) { + printf("failed to init curl\n"); + + return 1; + } + + curl_easy_setopt(curl, CURLOPT_URL, url); + curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 1L); + + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_cb); + + pagefile = fopen(path, "wb"); + + if (!pagefile) { + curl_easy_cleanup(curl); + + return 1; + } + + curl_easy_setopt(curl, CURLOPT_WRITEDATA, pagefile); + + int result = curl_easy_perform(curl); + + fclose(pagefile); + + return result; +} -- cgit v1.3