diff options
| author | Ted Ross <tross@apache.org> | 2013-06-26 20:12:07 +0000 |
|---|---|---|
| committer | Ted Ross <tross@apache.org> | 2013-06-26 20:12:07 +0000 |
| commit | 27e19a50dda487c1ba3e69e539e57ae499b29b9c (patch) | |
| tree | 8e1c609c012370055b5ff06ad08af4fa5a00b8fa /qpid/extras/dispatch/src/router_node.c | |
| parent | 2a9141ac23a2c8459a0ac684f6522898d9abb6e7 (diff) | |
| download | qpid-python-27e19a50dda487c1ba3e69e539e57ae499b29b9c.tar.gz | |
NO-JIRA - Management agent in the container now responds to "get" requests.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1497070 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/extras/dispatch/src/router_node.c')
| -rw-r--r-- | qpid/extras/dispatch/src/router_node.c | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/qpid/extras/dispatch/src/router_node.c b/qpid/extras/dispatch/src/router_node.c index c6105e35ad..010b008f93 100644 --- a/qpid/extras/dispatch/src/router_node.c +++ b/qpid/extras/dispatch/src/router_node.c @@ -573,9 +573,25 @@ void dx_router_unregister_address(dx_address_t *ad) } -void dx_router_send(dx_dispatch_t *dx, - const char *address, - dx_message_t *msg) +void dx_router_send(dx_dispatch_t *dx, + dx_field_iterator_t *address, + dx_message_t *msg) { + dx_router_t *router = dx->router; + dx_address_t *addr; + + dx_field_iterator_reset_view(address, ITER_VIEW_ADDRESS_HASH); + sys_mutex_lock(router->lock); + hash_retrieve(router->out_hash, address, (void*) &addr); + if (addr) { + if (addr->rlink) { + pn_link_t *pn_outlink = dx_link_pn(addr->rlink->link); + dx_message_t *copy = dx_message_copy(msg); + DEQ_INSERT_TAIL(addr->rlink->out_fifo, copy); + pn_link_offered(pn_outlink, DEQ_SIZE(addr->rlink->out_fifo)); + dx_link_activate(addr->rlink->link); + } + } + sys_mutex_unlock(router->lock); // TOINVESTIGATE Move this higher? } |
