summaryrefslogtreecommitdiff
path: root/src/process_url.c
diff options
context:
space:
mode:
authorMole Shang <[email protected]>2023-08-07 21:54:09 +0800
committerMole Shang <[email protected]>2023-08-07 22:59:19 +0800
commitb6c2d97d3bf98c46656a7e6697c1c0f4686d7d97 (patch)
treea6f829ac91a8033362c1474f531ecc7b78db571b /src/process_url.c
parentf9b502b5fdfeb7e11e3eacc158b41748623efd56 (diff)
downloadhinata-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.c13
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;
}