You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by tr...@apache.org on 2014/05/19 17:04:31 UTC
svn commit: r1595927 - in /qpid/dispatch/trunk: src/router_node.c
tests/system_tests_one_router.py tests/system_tests_two_routers.py
Author: tross
Date: Mon May 19 15:04:31 2014
New Revision: 1595927
URL: http://svn.apache.org/r1595927
Log:
DISPATCH-1 - Fixed bug with propagation of the to field in the message-annotations.
Modified:
qpid/dispatch/trunk/src/router_node.c
qpid/dispatch/trunk/tests/system_tests_one_router.py
qpid/dispatch/trunk/tests/system_tests_two_routers.py
Modified: qpid/dispatch/trunk/src/router_node.c
URL: http://svn.apache.org/viewvc/qpid/dispatch/trunk/src/router_node.c?rev=1595927&r1=1595926&r2=1595927&view=diff
==============================================================================
--- qpid/dispatch/trunk/src/router_node.c (original)
+++ qpid/dispatch/trunk/src/router_node.c Mon May 19 15:04:31 2014
@@ -447,10 +447,12 @@ static qd_field_iterator_t *router_annot
qd_parsed_field_t *trace = 0;
qd_parsed_field_t *ingress = 0;
+ qd_parsed_field_t *to = 0;
if (in_ma) {
trace = qd_parse_value_by_key(in_ma, QD_MA_TRACE);
ingress = qd_parse_value_by_key(in_ma, QD_MA_INGRESS);
+ to = qd_parse_value_by_key(in_ma, QD_MA_TO);
}
qd_compose_start_map(out_ma);
@@ -461,6 +463,9 @@ static qd_field_iterator_t *router_annot
if (to_override) {
qd_compose_insert_string(out_ma, QD_MA_TO);
qd_compose_insert_string(out_ma, to_override);
+ } else if (to) {
+ qd_compose_insert_string(out_ma, QD_MA_TO);
+ qd_compose_insert_string_iterator(out_ma, qd_parse_raw(to));
}
//
Modified: qpid/dispatch/trunk/tests/system_tests_one_router.py
URL: http://svn.apache.org/viewvc/qpid/dispatch/trunk/tests/system_tests_one_router.py?rev=1595927&r1=1595926&r2=1595927&view=diff
==============================================================================
--- qpid/dispatch/trunk/tests/system_tests_one_router.py (original)
+++ qpid/dispatch/trunk/tests/system_tests_one_router.py Mon May 19 15:04:31 2014
@@ -974,5 +974,40 @@ class RouterTest(unittest.TestCase):
M4.stop()
+ def test_13_to_override(self):
+ addr = "amqp://0.0.0.0:20000/toov/1"
+ M1 = Messenger()
+ M2 = Messenger()
+
+ M1.timeout = 1.0
+ M2.timeout = 1.0
+
+ M1.start()
+ M2.start()
+ self.subscribe(M2, addr)
+
+ tm = Message()
+ rm = Message()
+
+ tm.address = addr
+
+ ##
+ ## Pre-existing ingress
+ ##
+ tm.annotations = {'x-opt-qd.to': 'toov/1'}
+ for i in range(10):
+ tm.body = {'number': i}
+ M1.put(tm)
+ M1.send()
+
+ for i in range(10):
+ M2.recv(1)
+ M2.get(rm)
+ self.assertEqual(i, rm.body['number'])
+ ma = rm.annotations
+ self.assertEqual(ma.__class__, dict)
+ self.assertEqual(ma['x-opt-qd.to'], 'toov/1')
+
+
if __name__ == '__main__':
unittest.main()
Modified: qpid/dispatch/trunk/tests/system_tests_two_routers.py
URL: http://svn.apache.org/viewvc/qpid/dispatch/trunk/tests/system_tests_two_routers.py?rev=1595927&r1=1595926&r2=1595927&view=diff
==============================================================================
--- qpid/dispatch/trunk/tests/system_tests_two_routers.py (original)
+++ qpid/dispatch/trunk/tests/system_tests_two_routers.py Mon May 19 15:04:31 2014
@@ -832,6 +832,48 @@ class RouterTest(unittest.TestCase):
M3.stop()
M4.stop()
+ def test_13_to_override(self):
+ addr = "amqp:/toov/1"
+ M1 = Messenger()
+ M2 = Messenger()
+
+ M1.route("amqp:/*", "amqp://0.0.0.0:20100/$1")
+ M2.route("amqp:/*", "amqp://0.0.0.0:20101/$1")
+
+ M1.timeout = 1.0
+ M2.timeout = 1.0
+
+ M1.start()
+ M2.start()
+ self.subscribe(M2, addr)
+ wait_for_addr(M1, "toov/1", 0, 1)
+
+ tm = Message()
+ rm = Message()
+
+ tm.address = addr
+
+ ##
+ ## Pre-existing TO
+ ##
+ tm.annotations = {'x-opt-qd.to': 'toov/1'}
+ for i in range(10):
+ tm.body = {'number': i}
+ M1.put(tm)
+ M1.send()
+
+ for i in range(10):
+ M2.recv(1)
+ M2.get(rm)
+ self.assertEqual(i, rm.body['number'])
+ ma = rm.annotations
+ self.assertEqual(ma.__class__, dict)
+ self.assertEqual(ma['x-opt-qd.to'], 'toov/1')
+
+ M1.stop()
+ M2.stop()
+
+
if __name__ == '__main__':
if len(sys.argv) > 1:
if '--ssl' in sys.argv:
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org