PROTON-1514: revert e76aa91 pending investigation of new qpid-dispatch errors
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/6e15ddcc Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/6e15ddcc Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/6e15ddcc Branch: refs/heads/go1 Commit: 6e15ddcce1c1b2089c0ba507fce602af288024b2 Parents: bdb9fc6 Author: Clifford Jansen <cliffjan...@apache.org> Authored: Thu Mar 22 13:58:44 2018 -0700 Committer: Clifford Jansen <cliffjan...@apache.org> Committed: Thu Mar 22 13:58:44 2018 -0700 ---------------------------------------------------------------------- proton-c/src/core/transport.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6e15ddcc/proton-c/src/core/transport.c ---------------------------------------------------------------------- diff --git a/proton-c/src/core/transport.c b/proton-c/src/core/transport.c index 0d18f72..96b54f2 100644 --- a/proton-c/src/core/transport.c +++ b/proton-c/src/core/transport.c @@ -1469,12 +1469,12 @@ int pn_do_transfer(pn_transport_t *transport, uint8_t frame_type, uint16_t chann pn_sequence_t id; bool settled; bool more; - bool has_type, settled_set; + bool has_type; bool resume, aborted, batchable; uint64_t type; pn_data_clear(transport->disp_data); - int err = pn_data_scan(args, "D.[I?Iz.?oo.D?LCooo]", &handle, &id_present, &id, &tag, - &settled_set, &settled, &more, &has_type, &type, transport->disp_data, + int err = pn_data_scan(args, "D.[I?Iz.oo.D?LCooo]", &handle, &id_present, &id, &tag, + &settled, &more, &has_type, &type, transport->disp_data, &resume, &aborted, &batchable); if (err) return err; pn_session_t *ssn = pni_channel_state(transport, channel); @@ -1493,8 +1493,6 @@ int pn_do_transfer(pn_transport_t *transport, uint8_t frame_type, uint16_t chann pn_delivery_t *delivery; if (link->unsettled_tail && !link->unsettled_tail->done) { delivery = link->unsettled_tail; - if (settled_set && !settled && delivery->remote.settled) - return pn_do_error(transport, "amqp:invalid-field", "invalid transition from settled to unsettled"); } else { pn_delivery_map_t *incoming = &ssn->state.incoming; @@ -1519,17 +1517,18 @@ int pn_do_transfer(pn_transport_t *transport, uint8_t frame_type, uint16_t chann link->state.delivery_count++; link->state.link_credit--; link->queued++; + + // XXX: need to fill in remote state: delivery->remote.state = ...; + delivery->remote.settled = settled; + if (settled) { + delivery->updated = true; + pn_work_update(transport->connection, delivery); + } } pn_buffer_append(delivery->bytes, payload->start, payload->size); ssn->incoming_bytes += payload->size; delivery->done = !more; - // XXX: need to fill in remote state: delivery->remote.state = ...; - if (settled && !delivery->remote.settled) { - delivery->remote.settled = settled; - delivery->updated = true; - pn_work_update(transport->connection, delivery); - } ssn->state.incoming_transfer_count++; ssn->state.incoming_window--; --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org