diff --git a/src/detail/header.cpp b/src/detail/header.cpp index 4ede1bdf..acc684ba 100644 --- a/src/detail/header.cpp +++ b/src/detail/header.cpp @@ -669,6 +669,12 @@ on_insert_content_encoding( md.content_encoding.coding = content_coding::br; } + else if(grammar::ci_is_equal( + *rv->begin(), "zstd")) + { + md.content_encoding.coding = + content_coding::zstd; + } else { md.content_encoding.coding = diff --git a/test/unit/metadata.cpp b/test/unit/metadata.cpp index 59ae2691..b941738c 100644 --- a/test/unit/metadata.cpp +++ b/test/unit/metadata.cpp @@ -300,6 +300,20 @@ struct metadata_test [](message_base&){}, { ok, 1, content_coding::gzip }); + check( + "GET / HTTP/1.1\r\n" + "Content-Encoding: br\r\n" + "\r\n", + [](message_base&){}, + { ok, 1, content_coding::br }); + + check( + "GET / HTTP/1.1\r\n" + "Content-Encoding: zstd\r\n" + "\r\n", + [](message_base&){}, + { ok, 1, content_coding::zstd }); + check( "GET / HTTP/1.1\r\n" "Content-Encoding: gzip, deflate\r\n"