Author: gsim Date: Fri Oct 10 12:54:31 2014 New Revision: 1630832 URL: http://svn.apache.org/r1630832 Log: PROTON-673: patch from dominic for messenger accessors for remote idle timeout
Modified: qpid/proton/branches/examples/proton-c/include/proton/messenger.h qpid/proton/branches/examples/proton-c/src/messenger/messenger.c Modified: qpid/proton/branches/examples/proton-c/include/proton/messenger.h URL: http://svn.apache.org/viewvc/qpid/proton/branches/examples/proton-c/include/proton/messenger.h?rev=1630832&r1=1630831&r2=1630832&view=diff ============================================================================== --- qpid/proton/branches/examples/proton-c/include/proton/messenger.h (original) +++ qpid/proton/branches/examples/proton-c/include/proton/messenger.h Fri Oct 10 12:54:31 2014 @@ -963,6 +963,17 @@ PN_EXTERN int pn_messenger_set_rcv_settl PN_EXTERN void pn_messenger_set_tracer(pn_messenger_t *messenger, pn_tracer_t tracer); +/** + * Gets the remote idle timeout for the specified remote service address + * + * @param[in] messenger a messenger object + * @param[in] address of remote service whose idle timeout is required + * @return the timeout in milliseconds or -1 if an error occurs + */ +PN_EXTERN pn_millis_t + pn_messenger_get_remote_idle_timeout(pn_messenger_t *messenger, + const char *address); + #ifdef __cplusplus } #endif Modified: qpid/proton/branches/examples/proton-c/src/messenger/messenger.c URL: http://svn.apache.org/viewvc/qpid/proton/branches/examples/proton-c/src/messenger/messenger.c?rev=1630832&r1=1630831&r2=1630832&view=diff ============================================================================== --- qpid/proton/branches/examples/proton-c/src/messenger/messenger.c (original) +++ qpid/proton/branches/examples/proton-c/src/messenger/messenger.c Fri Oct 10 12:54:31 2014 @@ -2297,3 +2297,30 @@ void pn_messenger_set_tracer(pn_messenge messenger->tracer = tracer; } + +pn_millis_t pn_messenger_get_remote_idle_timeout(pn_messenger_t *messenger, + const char *address) +{ + if (!messenger) + return PN_ARG_ERR; + + pn_address_t addr; + addr.text = pn_string(address); + pni_parse(&addr); + + pn_millis_t timeout = -1; + for (size_t i = 0; i < pn_list_size(messenger->connections); i++) { + pn_connection_t *connection = + (pn_connection_t *)pn_list_get(messenger->connections, i); + pn_connection_ctx_t *ctx = + (pn_connection_ctx_t *)pn_connection_get_context(connection); + if (pn_streq(addr.scheme, ctx->scheme) && pn_streq(addr.host, ctx->host) && + pn_streq(addr.port, ctx->port)) { + pn_transport_t *transport = pn_connection_transport(connection); + if (transport) + timeout = pn_transport_get_remote_idle_timeout(transport); + break; + } + } + return timeout; +} --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org