summaryrefslogtreecommitdiff
path: root/qpid/extras/dispatch/src/router_node.c
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2013-05-24 20:42:39 +0000
committerTed Ross <tross@apache.org>2013-05-24 20:42:39 +0000
commitd7c04dfcfec17330912765ba88b296b517a6c317 (patch)
treebab4fe4e8927ade9e240fcfb78a798ccc7288112 /qpid/extras/dispatch/src/router_node.c
parente1be68d273e4e6b7a7915cc91219ce583c1e88d7 (diff)
downloadqpid-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.c10
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);