diff options
author | Mole Shang <[email protected]> | 2023-08-07 21:54:09 +0800 |
---|---|---|
committer | Mole Shang <[email protected]> | 2023-08-07 22:59:19 +0800 |
commit | b6c2d97d3bf98c46656a7e6697c1c0f4686d7d97 (patch) | |
tree | a6f829ac91a8033362c1474f531ecc7b78db571b /src/process_url.c | |
parent | f9b502b5fdfeb7e11e3eacc158b41748623efd56 (diff) | |
download | hinata-b6c2d97d3bf98c46656a7e6697c1c0f4686d7d97.tar.gz hinata-b6c2d97d3bf98c46656a7e6697c1c0f4686d7d97.tar.bz2 hinata-b6c2d97d3bf98c46656a7e6697c1c0f4686d7d97.zip |
process_url: use goto to simplify error processing
Diffstat (limited to 'src/process_url.c')
-rw-r--r-- | src/process_url.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/src/process_url.c b/src/process_url.c index 71fdacd..bf2edfd 100644 --- a/src/process_url.c +++ b/src/process_url.c @@ -254,29 +254,26 @@ static bool get_info(const char *URL, long *psize) { curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, NULL); CURLcode r = curl_easy_perform(curl); if (logerr(r)) { - curl_easy_cleanup(curl); - return support_range; + goto end; } r = curl_easy_getinfo(curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD_T, (curl_off_t *)psize); if (logerr(r)) { - curl_easy_cleanup(curl); - return support_range; + goto end; } CURLHcode rh = curl_easy_header(curl, "Accept-Ranges", 0, CURLH_HEADER, -1, &pch); if (logerr(rh) || strcmp(pch->value, "bytes")) { - curl_easy_cleanup(curl); - return support_range; + goto end; } char *ct = NULL; r = curl_easy_getinfo(curl, CURLINFO_CONTENT_TYPE, &ct); if (logerr(r)) { - curl_easy_cleanup(curl); - return support_range; + goto end; } support_range = true; +end: curl_easy_cleanup(curl); return support_range; } |