diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2024-04-15 00:45:03 -0400 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2024-04-15 01:03:35 -0400 |
commit | cc935245624c9c8892fd122826dda210d4dab656 (patch) | |
tree | 371da6ea4a760bd7df9d19832b4b2b1fab7380b3 /src/download.c | |
parent | 7dbbe725e8b59a7ed813342bd5cb47c81bc2cf1c (diff) | |
download | stasis-cc935245624c9c8892fd122826dda210d4dab656.tar.gz |
Fix return code from download()
* Will return -1 on error
* Still returns HTTP code if error is server-side
Diffstat (limited to 'src/download.c')
-rw-r--r-- | src/download.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/download.c b/src/download.c index a64b349..cbb617f 100644 --- a/src/download.c +++ b/src/download.c @@ -14,7 +14,7 @@ long download(char *url, const char *filename, char **errmsg) { extern char *VERSION; CURL *c; CURLcode curl_code; - long http_code; + long http_code = -1; FILE *fp; char user_agent[20]; sprintf(user_agent, "omc/%s", VERSION); @@ -25,7 +25,7 @@ long download(char *url, const char *filename, char **errmsg) { curl_easy_setopt(c, CURLOPT_WRITEFUNCTION, download_writer); fp = fopen(filename, "wb"); if (!fp) { - return 1; + return -1; } curl_easy_setopt(c, CURLOPT_VERBOSE, 0L); curl_easy_setopt(c, CURLOPT_FOLLOWLOCATION, 1L); @@ -37,12 +37,14 @@ long download(char *url, const char *filename, char **errmsg) { if (errmsg) { strcpy(*errmsg, curl_easy_strerror(curl_code)); } else { - fprintf(stderr, "CURL ERROR: %s\n", curl_easy_strerror(curl_code)); + fprintf(stderr, "\nCURL ERROR: %s\n", curl_easy_strerror(curl_code)); } + goto failed; } curl_easy_getinfo(c, CURLINFO_RESPONSE_CODE, &http_code); - fclose(fp); + failed: + fclose(fp); curl_easy_cleanup(c); curl_global_cleanup(); return http_code; |