diff options
| author | Ted Ross <tross@apache.org> | 2013-05-24 20:42:39 +0000 |
|---|---|---|
| committer | Ted Ross <tross@apache.org> | 2013-05-24 20:42:39 +0000 |
| commit | d7c04dfcfec17330912765ba88b296b517a6c317 (patch) | |
| tree | bab4fe4e8927ade9e240fcfb78a798ccc7288112 /qpid/extras/dispatch/src/router_node.c | |
| parent | e1be68d273e4e6b7a7915cc91219ce583c1e88d7 (diff) | |
| download | qpid-python-d7c04dfcfec17330912765ba88b296b517a6c317.tar.gz | |
NO-JIRA - Pre-settled deliveries that are received must be locally settled.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1486214 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 | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/qpid/extras/dispatch/src/router_node.c b/qpid/extras/dispatch/src/router_node.c index 791434f576..e361e9ce8e 100644 --- a/qpid/extras/dispatch/src/router_node.c +++ b/qpid/extras/dispatch/src/router_node.c @@ -210,8 +210,14 @@ static void router_rx_handler(void* context, dx_link_t *link, pn_delivery_t *del pn_delivery_settle(delivery); } + sys_mutex_unlock(router->lock); // TOINVESTIGATE Move this higher? dx_free_message(msg); - sys_mutex_unlock(router->lock); + + // + // If this was a pre-settled delivery, we must also locally settle it. + // + if (pn_delivery_settled(delivery)) + pn_delivery_settle(delivery); } } else { // @@ -292,7 +298,7 @@ static int router_incoming_link_handler(void* context, dx_link_t *link) pn_terminus_copy(pn_link_source(pn_link), pn_link_remote_source(pn_link)); pn_terminus_copy(pn_link_target(pn_link), pn_link_remote_target(pn_link)); - pn_link_flow(pn_link, 32); + pn_link_flow(pn_link, 1000); pn_link_open(pn_link); } else { pn_link_close(pn_link); |
