You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2015/12/30 22:13:03 UTC

[15/50] [abbrv] qpid-proton git commit: PROTON-1054: add acceptor context to incoming reactor connections.

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 <cl...@apache.org>
Authored: Wed Dec 9 10:25:53 2015 -0800
Committer: Clifford Jansen <cl...@apache.org>
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: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org