diff options
author | Gordon Sim <gsim@apache.org> | 2012-11-28 14:13:52 +0000 |
---|---|---|
committer | Gordon Sim <gsim@apache.org> | 2012-11-28 14:13:52 +0000 |
commit | bfc9e66d26319e8f216a4be5e0b1e9f2ef9bcc3a (patch) | |
tree | 0f65705f8aa550129dcb8fb769c6639895de6bc6 | |
parent | 8279c453cd8002ceccaa8278f967e3a4a78ce1d8 (diff) | |
download | qpid-python-bfc9e66d26319e8f216a4be5e0b1e9f2ef9bcc3a.tar.gz |
QPID-4465: check subject before setting filter
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/0.20@1414711 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | qpid/cpp/src/qpid/messaging/amqp/ReceiverContext.cpp | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/qpid/cpp/src/qpid/messaging/amqp/ReceiverContext.cpp b/qpid/cpp/src/qpid/messaging/amqp/ReceiverContext.cpp index 8034df311a..414793c7fd 100644 --- a/qpid/cpp/src/qpid/messaging/amqp/ReceiverContext.cpp +++ b/qpid/cpp/src/qpid/messaging/amqp/ReceiverContext.cpp @@ -120,18 +120,20 @@ void ReceiverContext::configure(pn_terminus_t* source) const helper.setNodeProperties(source); } - //filter: - pn_data_t* filter = pn_terminus_filter(source); - pn_data_put_map(filter); - pn_data_enter(filter); - pn_data_put_symbol(filter, convert("subject")); - //TODO: At present inserting described values into the map doesn't seem to work; correct this once resolved - //pn_data_put_described(filter); - //pn_data_enter(filter); - //pn_data_put_ulong(filter, getFilterDescriptor(address.getSubject())); - pn_data_put_string(filter, convert(address.getSubject())); - //pn_data_exit(filter); - pn_data_exit(filter); + if (!address.getSubject().empty()) { + //filter: + pn_data_t* filter = pn_terminus_filter(source); + pn_data_put_map(filter); + pn_data_enter(filter); + pn_data_put_symbol(filter, convert("subject")); + //TODO: At present inserting described values into the map doesn't seem to work; correct this once resolved + //pn_data_put_described(filter); + //pn_data_enter(filter); + //pn_data_put_ulong(filter, getFilterDescriptor(address.getSubject())); + pn_data_put_string(filter, convert(address.getSubject())); + //pn_data_exit(filter); + pn_data_exit(filter); + } } bool ReceiverContext::isClosed() const |