You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by as...@apache.org on 2015/07/28 00:08:08 UTC
[3/4] qpid-proton git commit: NO-JIRA: Change interface to
pni_post_close()
NO-JIRA: Change interface to pni_post_close()
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/a1c99bc7
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/a1c99bc7
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/a1c99bc7
Branch: refs/heads/master
Commit: a1c99bc700a25c7a3d84e7300d7d2c7fd1b81fc7
Parents: 873b237
Author: Andrew Stitcher <as...@apache.org>
Authored: Fri Jul 24 18:40:18 2015 -0400
Committer: Andrew Stitcher <as...@apache.org>
Committed: Mon Jul 27 17:55:47 2015 -0400
----------------------------------------------------------------------
proton-c/src/transport/transport.c | 29 +++++++++++++++--------------
1 file changed, 15 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/a1c99bc7/proton-c/src/transport/transport.c
----------------------------------------------------------------------
diff --git a/proton-c/src/transport/transport.c b/proton-c/src/transport/transport.c
index 7a33940..a58e0bf 100644
--- a/proton-c/src/transport/transport.c
+++ b/proton-c/src/transport/transport.c
@@ -1009,14 +1009,15 @@ static int pni_post_amqp_transfer_frame(pn_transport_t *transport, uint16_t ch,
return framecount;
}
-static int pni_post_close(pn_transport_t *transport, const char *condition, const char *description)
+static int pni_post_close(pn_transport_t *transport, pn_condition_t *cond)
{
- pn_condition_t *cond = NULL;
- if (transport->connection) {
+ if (!cond && transport->connection) {
cond = pn_connection_condition(transport->connection);
}
+ const char *condition = NULL;
+ const char *description = NULL;
pn_data_t *info = NULL;
- if (!condition && pn_condition_is_set(cond)) {
+ if (pn_condition_is_set(cond)) {
condition = pn_condition_get_name(cond);
description = pn_condition_get_description(cond);
info = pn_condition_info(cond);
@@ -1065,15 +1066,6 @@ int pn_do_error(pn_transport_t *transport, const char *condition, const char *fm
buf[0] = '\0';
}
va_end(ap);
- if (!transport->close_sent) {
- if (!transport->open_sent) {
- pn_post_frame(transport, AMQP_FRAME_TYPE, 0, "DL[S]", OPEN, "");
- }
-
- pni_post_close(transport, condition, buf);
- transport->close_sent = true;
- }
- transport->halt = true;
pn_condition_t *cond = &transport->condition;
if (!pn_condition_is_set(cond)) {
pn_condition_set_name(cond, condition);
@@ -1095,6 +1087,15 @@ int pn_do_error(pn_transport_t *transport, const char *condition, const char *fm
if (transport->trace & PN_TRACE_DRV) {
pn_transport_logf(transport, "ERROR %s %s", condition, buf);
}
+ if (!transport->close_sent) {
+ if (!transport->open_sent) {
+ pn_post_frame(transport, AMQP_FRAME_TYPE, 0, "DL[S]", OPEN, "");
+ }
+
+ pni_post_close(transport, &transport->condition);
+ transport->close_sent = true;
+ }
+ transport->halt = true;
transport->done_processing = true;
pni_close_tail(transport);
return PN_ERR;
@@ -2352,7 +2353,7 @@ static int pni_process_conn_teardown(pn_transport_t *transport, pn_endpoint_t *e
{
if (endpoint->state & PN_LOCAL_CLOSED && !transport->close_sent) {
if (pni_pointful_buffering(transport, NULL)) return 0;
- int err = pni_post_close(transport, NULL, NULL);
+ int err = pni_post_close(transport, NULL);
if (err) return err;
transport->close_sent = true;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org