This is an automated email from the ASF dual-hosted git repository. asf-gitbox-commits pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/qpid-proton.git
commit e1695bc5e1013f65777af8ef2a92a62b9609e047 Author: Andrew Stitcher <[email protected]> AuthorDate: Sun Apr 26 19:45:29 2026 -0400 PROTON-2873: Make it easier to switch between disposition types Add pn_disposition_clear to exposed API so that you can set a change the disposition type and parameters of a disposition that is already set using the new disposition API. Doing this is an unusual case, but occurs when you have an incoming delivery inside a transaction which has been transactionally acknowledged but the transaction aborts or commit fails and now needs to be have a modified disposition. --- c/include/proton/disposition.h | 7 +++++++ c/src/core/engine-internal.h | 2 -- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/c/include/proton/disposition.h b/c/include/proton/disposition.h index 7d7fdee3b..ee4b27966 100644 --- a/c/include/proton/disposition.h +++ b/c/include/proton/disposition.h @@ -124,6 +124,13 @@ PN_EXTERN uint64_t pn_disposition_type(pn_disposition_t *disposition); */ PN_EXTERN const char *pn_disposition_type_name(uint64_t disposition_type); +/** + * Clear a disposition. + * + * @param[in] disposition a disposition object + */ +PN_EXTERN void pn_disposition_clear(pn_disposition_t *disposition); + /** * Access the condition object associated with a disposition. * diff --git a/c/src/core/engine-internal.h b/c/src/core/engine-internal.h index 5bab0f7bd..76cabbdc4 100644 --- a/c/src/core/engine-internal.h +++ b/c/src/core/engine-internal.h @@ -427,8 +427,6 @@ void pn_transport_sasl_init(pn_transport_t *transport); void pn_condition_init(pn_condition_t *condition); void pn_condition_tini(pn_condition_t *condition); -void pn_disposition_clear(pn_disposition_t *ds); - void pn_modified(pn_connection_t *connection, pn_endpoint_t *endpoint, bool emit); void pn_real_settle(pn_delivery_t *delivery); // will free delivery if link is freed void pn_clear_tpwork(pn_delivery_t *delivery); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
