PROTON-1054: add acceptor context to incoming reactor connections.
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/d6da8eb1 Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/d6da8eb1 Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/d6da8eb1 Branch: refs/heads/go1 Commit: d6da8eb1c534a5432fcf1b16db7e034f81db3314 Parents: f160ada Author: Clifford Jansen <[email protected]> Authored: Wed Dec 9 10:25:53 2015 -0800 Committer: Clifford Jansen <[email protected]> Committed: Wed Dec 9 10:25:53 2015 -0800 ---------------------------------------------------------------------- proton-c/include/proton/reactor.h | 1 + proton-c/src/reactor/acceptor.c | 12 ++++++++++++ 2 files changed, 13 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/d6da8eb1/proton-c/include/proton/reactor.h ---------------------------------------------------------------------- diff --git a/proton-c/include/proton/reactor.h b/proton-c/include/proton/reactor.h index 0ac6f32..e91b169 100644 --- a/proton-c/include/proton/reactor.h +++ b/proton-c/include/proton/reactor.h @@ -86,6 +86,7 @@ PN_EXTERN pn_task_t *pn_reactor_schedule(pn_reactor_t *reactor, int delay, pn_ha PN_EXTERN void pn_acceptor_set_ssl_domain(pn_acceptor_t *acceptor, pn_ssl_domain_t *domain); PN_EXTERN void pn_acceptor_close(pn_acceptor_t *acceptor); +PN_EXTERN pn_acceptor_t *pn_connection_acceptor(pn_connection_t *connection); PN_EXTERN pn_timer_t *pn_timer(pn_collector_t *collector); PN_EXTERN pn_timestamp_t pn_timer_deadline(pn_timer_t *timer); http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/d6da8eb1/proton-c/src/reactor/acceptor.c ---------------------------------------------------------------------- diff --git a/proton-c/src/reactor/acceptor.c b/proton-c/src/reactor/acceptor.c index 819af8e..8f0e99b 100644 --- a/proton-c/src/reactor/acceptor.c +++ b/proton-c/src/reactor/acceptor.c @@ -23,6 +23,7 @@ #include <proton/sasl.h> #include <proton/selector.h> #include <proton/transport.h> +#include <proton/connection.h> #include "reactor.h" #include "selectable.h" @@ -30,6 +31,7 @@ pn_selectable_t *pn_reactor_selectable_transport(pn_reactor_t *reactor, pn_socke PN_HANDLE(PNI_ACCEPTOR_HANDLER) PN_HANDLE(PNI_ACCEPTOR_SSL_DOMAIN) +PN_HANDLE(PNI_ACCEPTOR_CONNECTION) void pni_acceptor_readable(pn_selectable_t *sel) { pn_reactor_t *reactor = (pn_reactor_t *) pni_selectable_get_context(sel); @@ -49,6 +51,10 @@ void pni_acceptor_readable(pn_selectable_t *sel) { pn_transport_bind(trans, conn); pn_decref(trans); pn_reactor_selectable_transport(reactor, sock, trans); + record = pn_connection_attachments(conn); + pn_record_def(record, PNI_ACCEPTOR_CONNECTION, PN_OBJECT); + pn_record_set(record, PNI_ACCEPTOR_CONNECTION, sel); + } void pni_acceptor_finalize(pn_selectable_t *sel) { @@ -95,3 +101,9 @@ void pn_acceptor_set_ssl_domain(pn_acceptor_t *acceptor, pn_ssl_domain_t *domain pn_record_def(record, PNI_ACCEPTOR_SSL_DOMAIN, PN_VOID); pn_record_set(record, PNI_ACCEPTOR_SSL_DOMAIN, domain); } + +pn_acceptor_t *pn_connection_acceptor(pn_connection_t *conn) { + // Return the acceptor that created the connection or NULL if an outbound connection + pn_record_t *record = pn_connection_attachments(conn); + return (pn_acceptor_t *) pn_record_get(record, PNI_ACCEPTOR_CONNECTION); +} --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
