diff --git a/test/extension/permessage_deflate.cpp b/test/extension/permessage_deflate.cpp index a68819d955..5b1fb1823a 100644 --- a/test/extension/permessage_deflate.cpp +++ b/test/extension/permessage_deflate.cpp @@ -156,3 +156,16 @@ BOOST_AUTO_TEST_CASE( negotiate_c2s_no_context_takeover_server_initiated ) { BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() ); BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; c2s_no_context_takeover"); } + +// Combinations +BOOST_AUTO_TEST_CASE( negotiate_all_client_initiated ) { + ext_vars v; + + v.attr["s2c_no_context_takeover"] = ""; + v.attr["c2s_no_context_takeover"] = ""; + + v.esp = v.exts.negotiate(v.attr); + BOOST_CHECK( v.exts.is_enabled() ); + BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() ); + BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; s2c_no_context_takeover; c2s_no_context_takeover"); +} diff --git a/websocketpp/extensions/permessage_deflate/enabled.hpp b/websocketpp/extensions/permessage_deflate/enabled.hpp index 1a25242862..de4fe8f3e4 100644 --- a/websocketpp/extensions/permessage_deflate/enabled.hpp +++ b/websocketpp/extensions/permessage_deflate/enabled.hpp @@ -287,7 +287,7 @@ public: ret.first = make_error_code(error::invalid_attributes); } - if (!ret.first) { + if (ret.first) { break; } }