You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rh...@apache.org on 2013/11/07 19:55:58 UTC
svn commit: r1539761 - in /qpid/proton/trunk/proton-c/src: engine/engine.c
messenger/messenger.c
Author: rhs
Date: Thu Nov 7 18:55:58 2013
New Revision: 1539761
URL: http://svn.apache.org/r1539761
Log:
rolled back premature fix
Modified:
qpid/proton/trunk/proton-c/src/engine/engine.c
qpid/proton/trunk/proton-c/src/messenger/messenger.c
Modified: qpid/proton/trunk/proton-c/src/engine/engine.c
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/engine/engine.c?rev=1539761&r1=1539760&r2=1539761&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/engine/engine.c (original)
+++ qpid/proton/trunk/proton-c/src/engine/engine.c Thu Nov 7 18:55:58 2013
@@ -169,6 +169,7 @@ void pn_add_link(pn_session_t *ssn, pn_l
void pn_remove_link(pn_session_t *ssn, pn_link_t *link)
{
+ link->session = NULL;
pn_list_remove(ssn->links, link);
}
Modified: qpid/proton/trunk/proton-c/src/messenger/messenger.c
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/messenger/messenger.c?rev=1539761&r1=1539760&r2=1539761&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/messenger/messenger.c (original)
+++ qpid/proton/trunk/proton-c/src/messenger/messenger.c Thu Nov 7 18:55:58 2013
@@ -664,29 +664,6 @@ int pni_pump_in(pn_messenger_t *messenge
return 0;
}
-void pni_messenger_reclaim_link(pn_messenger_t *messenger, pn_link_t *link)
-{
- if (pn_link_is_receiver(link) && pn_link_credit(link) > 0) {
- int credit = pn_link_credit(link);
- messenger->credit += credit;
- messenger->distributed -= credit;
- }
-
- pn_delivery_t *d = pn_unsettled_head(link);
- while (d) {
- pni_entry_t *e = (pni_entry_t *) pn_delivery_get_context(d);
- if (e) {
- pni_entry_set_delivery(e, NULL);
- if (pn_delivery_buffered(d)) {
- pni_entry_set_status(e, PN_STATUS_ABORTED);
- }
- }
- d = pn_unsettled_next(d);
- }
-
- link_ctx_release(messenger, link);
-}
-
int pni_pump_out(pn_messenger_t *messenger, const char *address, pn_link_t *sender);
void pn_messenger_endpoints(pn_messenger_t *messenger, pn_connection_t *conn, pn_connector_t *ctor)
@@ -756,10 +733,11 @@ void pn_messenger_endpoints(pn_messenger
link = pn_link_head(conn, PN_REMOTE_CLOSED);
while (link) {
- if (PN_LOCAL_ACTIVE & pn_link_state(link)) {
+ if (PN_LOCAL_ACTIVE | pn_link_state(link)) {
pn_condition_report("LINK", pn_link_remote_condition(link));
pn_link_close(link);
- pni_messenger_reclaim_link(messenger, link);
+ } else {
+ link_ctx_release( messenger, link );
pn_link_free(link);
}
link = pn_link_next(link, PN_REMOTE_CLOSED);
@@ -796,7 +774,26 @@ void pni_messenger_reclaim(pn_messenger_
pn_link_t *link = pn_link_head(conn, 0);
while (link) {
- pni_messenger_reclaim_link(messenger, link);
+ if (pn_link_is_receiver(link) && pn_link_credit(link) > 0) {
+ int credit = pn_link_credit(link);
+ messenger->credit += credit;
+ messenger->distributed -= credit;
+ }
+
+ pn_delivery_t *d = pn_unsettled_head(link);
+ while (d) {
+ pni_entry_t *e = (pni_entry_t *) pn_delivery_get_context(d);
+ if (e) {
+ pni_entry_set_delivery(e, NULL);
+ if (pn_delivery_buffered(d)) {
+ pni_entry_set_status(e, PN_STATUS_ABORTED);
+ }
+ }
+ d = pn_unsettled_next(d);
+ }
+
+ link_ctx_release(messenger, link);
+
link = pn_link_next(link, 0);
}
@@ -804,6 +801,7 @@ void pni_messenger_reclaim(pn_messenger_
pn_connection_free(conn);
}
+
pn_connection_t *pn_messenger_connection(pn_messenger_t *messenger,
pn_connector_t *connector,
const char *scheme,
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org