summaryrefslogtreecommitdiff
path: root/qpid/python
diff options
context:
space:
mode:
authorJonathan Robie <jonathan@apache.org>2011-01-07 19:44:02 +0000
committerJonathan Robie <jonathan@apache.org>2011-01-07 19:44:02 +0000
commit952a5c6c479aaa360f86800cad6d4a34516d95fa (patch)
treee4fb27040d8c9d14502700a498360f0b22ef9b56 /qpid/python
parent138b5019dcad82305e6233e9d5ec9a961e0e7cbe (diff)
downloadqpid-python-952a5c6c479aaa360f86800cad6d4a34516d95fa.tar.gz
Eliminates duplicate ExchangeBind when x-bindings are present.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1056473 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/python')
-rw-r--r--qpid/python/qpid/messaging/driver.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/qpid/python/qpid/messaging/driver.py b/qpid/python/qpid/messaging/driver.py
index f6378c39ea..2eb2c1863e 100644
--- a/qpid/python/qpid/messaging/driver.py
+++ b/qpid/python/qpid/messaging/driver.py
@@ -82,6 +82,7 @@ class Pattern:
# XXX: this should become part of the driver
def _bind(self, sst, exchange, queue):
from qpid.ops import ExchangeBind
+
sst.write_cmd(ExchangeBind(exchange=exchange, queue=queue,
binding_key=self.value.replace("*", "#")))
@@ -244,8 +245,10 @@ class LinkIn:
overrides=declare)
_rcv.on_unlink = [QueueDelete(_rcv._queue)]
subject = _rcv.subject or SUBJECT_DEFAULTS.get(subtype)
- sst.write_cmd(ExchangeBind(_rcv._queue, _rcv.name, subject))
bindings = get_bindings(link_opts, _rcv._queue, _rcv.name, subject)
+ if not bindings:
+ sst.write_cmd(ExchangeBind(_rcv._queue, _rcv.name, subject))
+
elif type == "queue":
_rcv._queue = _rcv.name
if _rcv.options.get("mode", "consume") == "browse":