You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by gs...@apache.org on 2018/06/12 16:24:55 UTC

qpid-dispatch git commit: DISPATCH-1034: pass proactor to use in to remote_sasl plugin

Repository: qpid-dispatch
Updated Branches:
  refs/heads/master ae4e3915a -> 403f35c50


DISPATCH-1034: pass proactor to use in to remote_sasl plugin


Project: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/commit/403f35c5
Tree: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/tree/403f35c5
Diff: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/diff/403f35c5

Branch: refs/heads/master
Commit: 403f35c503561a5e540c57e086424f9793d21e7f
Parents: ae4e391
Author: Gordon Sim <gs...@redhat.com>
Authored: Tue Jun 12 16:53:37 2018 +0100
Committer: Gordon Sim <gs...@redhat.com>
Committed: Tue Jun 12 17:24:35 2018 +0100

----------------------------------------------------------------------
 src/remote_sasl.c | 10 ++++++----
 src/remote_sasl.h |  2 +-
 src/server.c      |  4 ++--
 3 files changed, 9 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/403f35c5/src/remote_sasl.c
----------------------------------------------------------------------
diff --git a/src/remote_sasl.c b/src/remote_sasl.c
index 239891c..bb7d7f9 100644
--- a/src/remote_sasl.c
+++ b/src/remote_sasl.c
@@ -91,6 +91,7 @@ typedef struct
     char* authentication_service_address;
     char* sasl_init_hostname;
     pn_ssl_domain_t* ssl_domain;
+    pn_proactor_t* proactor;
 
     pn_connection_t* downstream;
     char* selected_mechanism;
@@ -120,7 +121,7 @@ static void copy_bytes(const pn_bytes_t* from, qdr_owned_bytes_t* to)
     memcpy(to->start, from->start, from->size);
 }
 
-static qdr_sasl_relay_t* new_qdr_sasl_relay_t(const char* address, const char* sasl_init_hostname)
+static qdr_sasl_relay_t* new_qdr_sasl_relay_t(const char* address, const char* sasl_init_hostname, pn_proactor_t* proactor)
 {
     qdr_sasl_relay_t* instance = NEW(qdr_sasl_relay_t);
     ZERO(instance);
@@ -128,6 +129,7 @@ static qdr_sasl_relay_t* new_qdr_sasl_relay_t(const char* address, const char* s
     if (sasl_init_hostname) {
         instance->sasl_init_hostname = strdup(sasl_init_hostname);
     }
+    instance->proactor = proactor;
     init_permissions(&instance->permissions);
     return instance;
 }
@@ -186,7 +188,7 @@ static bool remote_sasl_init_server(pn_transport_t* transport)
         qdr_sasl_relay_t* impl = (qdr_sasl_relay_t*) pnx_sasl_get_context(transport);
         if (impl->upstream) return true;
         impl->upstream = upstream;
-        pn_proactor_t* proactor = pn_connection_proactor(upstream);
+        pn_proactor_t* proactor = impl->proactor;
         if (!proactor) return false;
         impl->downstream = pn_connection();
         pn_connection_set_hostname(impl->downstream, pn_connection_get_hostname(upstream));
@@ -445,10 +447,10 @@ static void set_remote_impl(pn_transport_t *transport, qdr_sasl_relay_t* context
     pnx_sasl_set_implementation(transport, &remote_sasl_impl, context);
 }
 
-void qdr_use_remote_authentication_service(pn_transport_t *transport, const char* address, const char* sasl_init_hostname, pn_ssl_domain_t* ssl_domain)
+void qdr_use_remote_authentication_service(pn_transport_t *transport, const char* address, const char* sasl_init_hostname, pn_ssl_domain_t* ssl_domain, pn_proactor_t* proactor)
 {
     auth_service_log = qd_log_source("AUTHSERVICE");
-    qdr_sasl_relay_t* context = new_qdr_sasl_relay_t(address, sasl_init_hostname);
+    qdr_sasl_relay_t* context = new_qdr_sasl_relay_t(address, sasl_init_hostname, proactor);
     context->ssl_domain = ssl_domain;
     set_remote_impl(transport, context);
 }

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/403f35c5/src/remote_sasl.h
----------------------------------------------------------------------
diff --git a/src/remote_sasl.h b/src/remote_sasl.h
index 2afd686..2dd763a 100644
--- a/src/remote_sasl.h
+++ b/src/remote_sasl.h
@@ -24,7 +24,7 @@
 #include <proton/ssl.h>
 #include <proton/types.h>
 
-void qdr_use_remote_authentication_service(pn_transport_t* transport, const char* address, const char* sasl_init_hostname, pn_ssl_domain_t* ssl_domain);
+void qdr_use_remote_authentication_service(pn_transport_t* transport, const char* address, const char* sasl_init_hostname, pn_ssl_domain_t* ssl_domain, pn_proactor_t* proactor);
 bool qdr_is_authentication_service_connection(pn_connection_t* conn);
 void qdr_handle_authentication_service_connection_event(pn_event_t *e);
 

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/403f35c5/src/server.c
----------------------------------------------------------------------
diff --git a/src/server.c b/src/server.c
index 171c729..b3a4202 100644
--- a/src/server.c
+++ b/src/server.c
@@ -644,7 +644,7 @@ static void on_connection_bound(qd_server_t *server, pn_event_t *e) {
             pn_sasl_allowed_mechs(sasl, config->sasl_mechanisms);
         if (config->auth_service) {
             qd_log(server->log_source, QD_LOG_INFO, "enabling remote authentication service %s", config->auth_service);
-            qdr_use_remote_authentication_service(tport, config->auth_service, config->sasl_init_hostname, config->auth_ssl_conf);
+            qdr_use_remote_authentication_service(tport, config->auth_service, config->sasl_init_hostname, config->auth_ssl_conf, server->proactor);
         }
         pn_transport_require_auth(tport, config->requireAuthentication);
         pn_transport_require_encryption(tport, config->requireEncryption);
@@ -877,7 +877,7 @@ static bool handle(qd_server_t *qd_server, pn_event_t *e) {
         }
         break;
     }
-        
+
     case PN_CONNECTION_BOUND:
         on_connection_bound(qd_server, e);
         break;


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org