You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ch...@apache.org on 2016/03/24 20:41:24 UTC
qpid-dispatch git commit: Workaround PROTON-1133: port number
included in AMQP Open hostname. Enable Proton clients up to and including
0.12.1 to work with dispatch policy.
Repository: qpid-dispatch
Updated Branches:
refs/heads/crolke-DISPATCH-188-1 de2ff34b1 -> 5b214a9b7
Workaround PROTON-1133: port number included in AMQP Open hostname.
Enable Proton clients up to and including 0.12.1 to work with dispatch policy.
Project: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/commit/5b214a9b
Tree: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/tree/5b214a9b
Diff: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/diff/5b214a9b
Branch: refs/heads/crolke-DISPATCH-188-1
Commit: 5b214a9b7dd116ff6c636186b22abe0b0c1e9a63
Parents: de2ff34
Author: Chuck Rolke <cr...@redhat.com>
Authored: Thu Mar 24 15:39:58 2016 -0400
Committer: Chuck Rolke <cr...@redhat.com>
Committed: Thu Mar 24 15:39:58 2016 -0400
----------------------------------------------------------------------
src/policy.c | 15 ++++++++++++---
tests/policy-1/management-access.json | 4 ++--
tests/policy-2/test-router-with-policy.json.in | 2 +-
3 files changed, 15 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/5b214a9b/src/policy.c
----------------------------------------------------------------------
diff --git a/src/policy.c b/src/policy.c
index 3094aa2..83bfca0 100644
--- a/src/policy.c
+++ b/src/policy.c
@@ -294,6 +294,15 @@ bool qd_policy_open_lookup_user(
uint64_t conn_id,
qd_policy_settings_t *settings)
{
+ // TODO: crolke 2016-03-24 - Workaround for PROTON-1133: Port number is included in Open hostname
+ // Strip the ':NNNN', if any, from the app name so that policy will work with proton 0.12
+ char appname[HOST_NAME_MAX + 1];
+ strncpy(appname, app, HOST_NAME_MAX);
+ appname[HOST_NAME_MAX] = 0;
+ char * colonp = strstr(appname, ":");
+ if (colonp) {
+ *colonp = 0;
+ }
// Lookup the user/host/app for allow/deny and to get settings name
bool res = false;
qd_python_lock_state_t lock_state = qd_python_lock();
@@ -303,7 +312,7 @@ bool qd_policy_open_lookup_user(
if (lookup_user) {
PyObject *result = PyObject_CallFunction(lookup_user, "(OssssK)",
(PyObject *)policy->py_policy_manager,
- username, hostip, app, conn_name, conn_id);
+ username, hostip, appname, conn_name, conn_id);
if (result) {
const char *res_string = PyString_AsString(result);
strncpy(name_buf, res_string, name_buf_size);
@@ -335,7 +344,7 @@ bool qd_policy_open_lookup_user(
if (lookup_settings) {
PyObject *result2 = PyObject_CallFunction(lookup_settings, "(OssO)",
(PyObject *)policy->py_policy_manager,
- app, name_buf, upolicy);
+ appname, name_buf, upolicy);
if (result2) {
settings->maxFrameSize = qd_entity_opt_long((qd_entity_t*)upolicy, "maxFrameSize", 0);
settings->maxMessageSize = qd_entity_opt_long((qd_entity_t*)upolicy, "maxMessageSize", 0);
@@ -369,7 +378,7 @@ bool qd_policy_open_lookup_user(
qd_log(policy->log_source,
POLICY_LOG_LEVEL,
"Policy AMQP Open lookup_user: %s, hostip: %s, app: %s, connection: %s. Usergroup: '%s'%s",
- username, hostip, app, conn_name, name_buf, (res ? "" : " Internal error."));
+ username, hostip, appname, conn_name, name_buf, (res ? "" : " Internal error."));
return res;
}
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/5b214a9b/tests/policy-1/management-access.json
----------------------------------------------------------------------
diff --git a/tests/policy-1/management-access.json b/tests/policy-1/management-access.json
index 6eb2057..960c4a1 100644
--- a/tests/policy-1/management-access.json
+++ b/tests/policy-1/management-access.json
@@ -18,10 +18,10 @@
##
# A policy to allow unrestricted access to management
-# through port 22000
+# from host 0.0.0.0
[
["policyRuleset", {
- "applicationName": "0.0.0.0:22000",
+ "applicationName": "0.0.0.0",
"maxConnections": 50,
"maxConnPerUser": 5,
"maxConnPerHost": 20,
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/5b214a9b/tests/policy-2/test-router-with-policy.json.in
----------------------------------------------------------------------
diff --git a/tests/policy-2/test-router-with-policy.json.in b/tests/policy-2/test-router-with-policy.json.in
index e28d75c..5f96fdf 100644
--- a/tests/policy-2/test-router-with-policy.json.in
+++ b/tests/policy-2/test-router-with-policy.json.in
@@ -146,7 +146,7 @@
}
}],
["policyRuleset", {
- "applicationName": "0.0.0.0:21000",
+ "applicationName": "0.0.0.0",
"maxConnections": 50,
"maxConnPerUser": 5,
"maxConnPerHost": 20,
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org