You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rh...@apache.org on 2014/09/18 23:06:31 UTC
svn commit: r1626089 - in /qpid/proton/trunk/proton-c:
include/proton/messenger.h src/messenger/messenger.c
Author: rhs
Date: Thu Sep 18 21:06:30 2014
New Revision: 1626089
URL: http://svn.apache.org/r1626089
Log:
PROTON-673: patch from dominic for messenger accessors for remote idle timeout
Modified:
qpid/proton/trunk/proton-c/include/proton/messenger.h
qpid/proton/trunk/proton-c/src/messenger/messenger.c
Modified: qpid/proton/trunk/proton-c/include/proton/messenger.h
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/include/proton/messenger.h?rev=1626089&r1=1626088&r2=1626089&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/include/proton/messenger.h (original)
+++ qpid/proton/trunk/proton-c/include/proton/messenger.h Thu Sep 18 21:06:30 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/trunk/proton-c/src/messenger/messenger.c
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/messenger/messenger.c?rev=1626089&r1=1626088&r2=1626089&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/messenger/messenger.c (original)
+++ qpid/proton/trunk/proton-c/src/messenger/messenger.c Thu Sep 18 21:06:30 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-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org