From 25b530b8a8eab7cccafa7e3d6f0481d2888964de Mon Sep 17 00:00:00 2001 From: Peter Thorson Date: Thu, 27 Jun 2013 19:49:13 -0500 Subject: [PATCH] fix bug that prevented multiple attributes from working --- test/extension/permessage_deflate.cpp | 13 +++++++++++++ .../extensions/permessage_deflate/enabled.hpp | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) 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; } }