diff options
author | Timo Teräs <timo.teras@iki.fi> | 2021-07-16 10:22:42 +0300 |
---|---|---|
committer | Timo Teräs <timo.teras@iki.fi> | 2021-07-23 15:07:15 +0300 |
commit | 6854da9271bf30dc8273ca446dd5f18b4036c7a9 (patch) | |
tree | 613272a57d93dce23ae073cbc1f19a2dc2b19a04 /libfetch/http.c | |
parent | 2a8eb8132acba74d81f81a9bb8082714af77ce6c (diff) | |
download | apk-tools-6854da9271bf30dc8273ca446dd5f18b4036c7a9.tar.gz apk-tools-6854da9271bf30dc8273ca446dd5f18b4036c7a9.tar.bz2 apk-tools-6854da9271bf30dc8273ca446dd5f18b4036c7a9.tar.xz apk-tools-6854da9271bf30dc8273ca446dd5f18b4036c7a9.zip |
libfetch: simplify code by merging protocol error handling branches
removes some code duplication
Diffstat (limited to 'libfetch/http.c')
-rw-r--r-- | libfetch/http.c | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/libfetch/http.c b/libfetch/http.c index bb01fdc..59d6292 100644 --- a/libfetch/http.c +++ b/libfetch/http.c @@ -1044,8 +1044,7 @@ http_request(struct url *URL, const char *op, struct url_stat *us, fetch_syserr(); goto ouch; case hdr_error: - http_seterr(HTTP_PROTOCOL_ERROR); - goto ouch; + goto protocol_error; case hdr_connection: /* XXX too weak? */ keep_alive = (strcasecmp(p, "keep-alive") == 0); @@ -1154,18 +1153,14 @@ http_request(struct url *URL, const char *op, struct url_stat *us, } /* check for inconsistencies */ - if (clength != -1 && length != -1 && clength != length) { - http_seterr(HTTP_PROTOCOL_ERROR); - goto ouch; - } + if (clength != -1 && length != -1 && clength != length) + goto protocol_error; if (clength == -1) clength = length; if (clength != -1) length = offset + clength; - if (length != -1 && size != -1 && length != size) { - http_seterr(HTTP_PROTOCOL_ERROR); - goto ouch; - } + if (length != -1 && size != -1 && length != size) + goto protocol_error; if (size == -1) size = length; @@ -1176,10 +1171,8 @@ http_request(struct url *URL, const char *op, struct url_stat *us, } /* too far? */ - if (URL->offset > 0 && offset > URL->offset) { - http_seterr(HTTP_PROTOCOL_ERROR); - goto ouch; - } + if (URL->offset > 0 && offset > URL->offset) + goto protocol_error; /* report back real offset and size */ URL->offset = offset; @@ -1222,6 +1215,8 @@ http_request(struct url *URL, const char *op, struct url_stat *us, return (f); +protocol_error: + http_seterr(HTTP_PROTOCOL_ERROR); ouch: if (url != URL) fetchFreeURL(url); |