diff options
| author | Ted Ross <tross@apache.org> | 2013-08-08 12:17:23 +0000 |
|---|---|---|
| committer | Ted Ross <tross@apache.org> | 2013-08-08 12:17:23 +0000 |
| commit | bf9cb6739b8f49a866a3770df587361374ef8d04 (patch) | |
| tree | 12d9e4a233cdfb0b21e45ea21773e6aabbaf47da /qpid/extras/dispatch/src | |
| parent | ccd770b8d4cb231ad43a55fd83dbf577f67b4aec (diff) | |
| download | qpid-python-bf9cb6739b8f49a866a3770df587361374ef8d04.tar.gz | |
QPID-5045 - Added system tests for the routing scenarios, fixed discovered defects.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1511737 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/extras/dispatch/src')
| -rw-r--r-- | qpid/extras/dispatch/src/container.c | 6 | ||||
| -rw-r--r-- | qpid/extras/dispatch/src/router_node.c | 26 |
2 files changed, 18 insertions, 14 deletions
diff --git a/qpid/extras/dispatch/src/container.c b/qpid/extras/dispatch/src/container.c index 4a38cfc69c..d4766f0432 100644 --- a/qpid/extras/dispatch/src/container.c +++ b/qpid/extras/dispatch/src/container.c @@ -326,14 +326,12 @@ static int process_handler(dx_container_t *container, void* unused, pn_connectio // // Step 2.5: Traverse all of the links on the connection looking for - // outgoing links with non-zero credit. Call the attached node's - // writable handler for such links. + // links. Call the attached node's writable handler for such links. // pn_link = pn_link_head(conn, PN_LOCAL_ACTIVE | PN_REMOTE_ACTIVE); while (pn_link) { assert(pn_session_connection(pn_link_session(pn_link)) == conn); - if (pn_link_is_sender(pn_link)) - event_count += do_writable(pn_link); + event_count += do_writable(pn_link); pn_link = pn_link_next(pn_link, PN_LOCAL_ACTIVE | PN_REMOTE_ACTIVE); } diff --git a/qpid/extras/dispatch/src/router_node.c b/qpid/extras/dispatch/src/router_node.c index 1c5e7c266c..0bab382b52 100644 --- a/qpid/extras/dispatch/src/router_node.c +++ b/qpid/extras/dispatch/src/router_node.c @@ -228,10 +228,14 @@ static int router_writable_link_handler(void* context, dx_link_t *link) DEQ_REMOVE_HEAD(events); if (re->delivery) { - if (re->disposition) + if (re->disposition) { pn_delivery_update(dx_delivery_pn(re->delivery), re->disposition); - if (re->settle) + event_count++; + } + if (re->settle) { dx_delivery_free(re->delivery, 0); + event_count++; + } } free_dx_routed_event_t(re); @@ -1096,14 +1100,16 @@ static void dx_pyrouter_tick(dx_router_t *router) PyObject *pArgs; PyObject *pValue; - pArgs = PyTuple_New(0); - pValue = PyObject_CallObject(router->pyTick, pArgs); - if (PyErr_Occurred()) { - PyErr_Print(); - } - Py_DECREF(pArgs); - if (pValue) { - Py_DECREF(pValue); + if (router->pyTick) { + pArgs = PyTuple_New(0); + pValue = PyObject_CallObject(router->pyTick, pArgs); + if (PyErr_Occurred()) { + PyErr_Print(); + } + Py_DECREF(pArgs); + if (pValue) { + Py_DECREF(pValue); + } } } |
