diff options
Diffstat (limited to 'qpid/python')
| -rw-r--r-- | qpid/python/qpid/messaging/driver.py | 11 | ||||
| -rw-r--r-- | qpid/python/qpid/messaging/endpoints.py | 8 |
2 files changed, 11 insertions, 8 deletions
diff --git a/qpid/python/qpid/messaging/driver.py b/qpid/python/qpid/messaging/driver.py index aaff7fd2cb..4ac05d3478 100644 --- a/qpid/python/qpid/messaging/driver.py +++ b/qpid/python/qpid/messaging/driver.py @@ -34,6 +34,7 @@ from qpid.selector import Selector from qpid.util import URL, default,get_client_properties_with_defaults from qpid.validator import And, Context, List, Map, Types, Values from threading import Condition, Thread +from qpid.datatypes import uuid4 log = getLogger("qpid.messaging") rawlog = getLogger("qpid.messaging.io.raw") @@ -941,6 +942,16 @@ class Engine: # XXX: subject if lnk.options is None: lnk.options = {} + # if address starts with '#', create auxiliary queue with name preceded by uuid + if addr.startswith("#") and 'create' not in lnk.options: + lnk.name = str(uuid4()) + lnk.name + lnk.options['create'] = "always" + if 'node' not in lnk.options: + lnk.options['node'] = {} + if 'x-declare' not in lnk.options['node']: + lnk.options['node']['x-declare'] = {} + lnk.options['node']['x-declare']['auto-delete'] = "True" + lnk.options['node']['x-declare']['exclusive'] = "True" except address.LexError, e: return MalformedAddress(text=str(e)) except address.ParseError, e: diff --git a/qpid/python/qpid/messaging/endpoints.py b/qpid/python/qpid/messaging/endpoints.py index e69d7a10ae..f1497210ec 100644 --- a/qpid/python/qpid/messaging/endpoints.py +++ b/qpid/python/qpid/messaging/endpoints.py @@ -596,7 +596,6 @@ class Session(Endpoint): @rtype: Sender @return: a new Sender for the specified target """ - target = _mangle(target) sender = Sender(self, self.next_sender_id, target, options) self.next_sender_id += 1 self.senders.append(sender) @@ -620,7 +619,6 @@ class Session(Endpoint): @rtype: Receiver @return: a new Receiver for the specified source """ - source = _mangle(source) receiver = Receiver(self, self.next_receiver_id, source, options) self.next_receiver_id += 1 self.receivers.append(receiver) @@ -766,12 +764,6 @@ class Session(Endpoint): finally: self.connection._remove_session(self) -def _mangle(addr): - if addr and addr.startswith("#"): - return str(uuid4()) + addr - else: - return addr - class Sender(Endpoint): """ |
