summaryrefslogtreecommitdiff
path: root/qpid/python
diff options
context:
space:
mode:
authorRafael H. Schloming <rhs@apache.org>2009-10-11 16:54:18 +0000
committerRafael H. Schloming <rhs@apache.org>2009-10-11 16:54:18 +0000
commitb560997005f32b15e98c5743d96eaa2a4542d9fc (patch)
tree62f5b241e6d77ca3bc64743070b3b17538ff2a89 /qpid/python
parent88c3cf522a907532da77e1d8bc058035ce79eea8 (diff)
downloadqpid-python-b560997005f32b15e98c5743d96eaa2a4542d9fc.tar.gz
fixed subscription to use subject if present
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@824105 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/python')
-rw-r--r--qpid/python/qpid/driver.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/qpid/python/qpid/driver.py b/qpid/python/qpid/driver.py
index 13861aa215..7c293fe146 100644
--- a/qpid/python/qpid/driver.py
+++ b/qpid/python/qpid/driver.py
@@ -546,11 +546,18 @@ class Driver:
else:
_rcv._queue = "%s.%s" % (rcv.session.name, rcv.destination)
sst.write_cmd(QueueDeclare(queue=_rcv._queue, durable=DURABLE_DEFAULT, exclusive=True, auto_delete=True))
- # XXX
- if _rcv.options.get("filter") is None:
+ filter = _rcv.options.get("filter")
+ if _rcv.subject is None and filter is None:
f = FILTER_DEFAULTS[result.type]
+ elif _rcv.subject and filter:
+ # XXX
+ raise Exception("can't supply both subject and filter")
+ elif _rcv.subject:
+ # XXX
+ from messaging import Pattern
+ f = Pattern(_rcv.subject)
else:
- f = rcv.filter
+ f = filter
f._bind(sst, _rcv.name, _rcv._queue)
do_link()
sst.write_query(ExchangeQuery(name=_rcv.name), do_exchange_q)