Pavel Moravec created QPID-5896: ----------------------------------- Summary: [C++ client] Out of Bounds received when message is bigger than remaining TCP frame size Key: QPID-5896 URL: https://issues.apache.org/jira/browse/QPID-5896 Project: Qpid Issue Type: Bug Components: C++ Client Affects Versions: 0.29 Reporter: Pavel Moravec Priority: Minor
When implementing QPID-5895: if a message is split between two (or more) TCP/IP frames, ConnectionContext::get method raises: Out of Bounds: requested advance of 1000 at 44 but only 434 available That is due to the fact that the code calls: {noformat} current = pn_link_current(..) // that returns just incomplete part of the message from already-read-TCP-frame new EncodedMessage(pn_delivery_pending(current)) //here we create EncodedMessage with incomplete length {noformat} There needs to be a loop like: {noformat} current = pn_link_current(..) while pn_delivery_partial(current) { buffer_current_somewhere; current = pn_link_current(..); if (!current) wait_for_session_to_get_new_frame } encoded(new EncodedMessage(pn_delivery_pending(all_current_deliveries))); {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org