Use compression_method_get_by_name() instead of explicit checks.

See: https://bugs.torproject.org/21667
This commit is contained in:
Alexander Færøy 2017-05-12 12:21:49 +02:00
parent cf2f7a1bea
commit f8218b5ada
No known key found for this signature in database
GPG key ID: E15081D5D3C3DB53

View file

@ -2057,20 +2057,15 @@ parse_http_response(const char *headers, int *code, time_t *date,
if (!strcmpstart(s, "Content-Encoding: ")) {
enc = s+18; break;
});
if (!enc || !strcmp(enc, "identity")) {
if (enc == NULL)
*compression = NO_METHOD;
} else if (!strcmp(enc, "deflate") || !strcmp(enc, "x-deflate")) {
*compression = ZLIB_METHOD;
} else if (!strcmp(enc, "gzip") || !strcmp(enc, "x-gzip")) {
*compression = GZIP_METHOD;
} else if (!strcmp(enc, "x-zstd")) {
*compression = ZSTD_METHOD;
} else if (!strcmp(enc, "x-tor-lzma")) {
*compression = LZMA_METHOD;
} else {
log_info(LD_HTTP, "Unrecognized content encoding: %s. Trying to deal.",
escaped(enc));
*compression = UNKNOWN_METHOD;
else {
*compression = compression_method_get_by_name(enc);
if (*compression == UNKNOWN_METHOD)
log_info(LD_HTTP, "Unrecognized content encoding: %s. Trying to deal.",
escaped(enc));
}
}
SMARTLIST_FOREACH(parsed_headers, char *, s, tor_free(s));