diff options
Diffstat (limited to 'cpp/src')
| -rw-r--r-- | cpp/src/qpid/client/amqp0_10/AddressResolution.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/cpp/src/qpid/client/amqp0_10/AddressResolution.cpp b/cpp/src/qpid/client/amqp0_10/AddressResolution.cpp index 146d34932a..b819906677 100644 --- a/cpp/src/qpid/client/amqp0_10/AddressResolution.cpp +++ b/cpp/src/qpid/client/amqp0_10/AddressResolution.cpp @@ -127,7 +127,7 @@ const std::string FANOUT_EXCHANGE("fanout"); const std::string DIRECT_EXCHANGE("direct"); const std::string HEADERS_EXCHANGE("headers"); const std::string XML_EXCHANGE("xml"); -const std::string WILDCARD_ANY("*"); +const std::string WILDCARD_ANY("#"); const Verifier verifier; } @@ -529,8 +529,12 @@ void Subscription::bindAll() Binding b(name, queue, "match-all"); b.arguments.setString("x-match", "all"); bindings.push_back(b); - } else { //E.g. direct and xml - throw ResolutionError(QPID_MSG("Cannot create binding to match all messages for exchange of type " << actualType)); + } else if (actualType == XML_EXCHANGE) { + Binding b(name, queue, EMPTY_STRING); + b.arguments.setString("xquery", "true()"); + bindings.push_back(b); + } else { + add(name, EMPTY_STRING); } } |
