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