You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by tr...@apache.org on 2016/01/29 22:12:59 UTC
[2/4] qpid-dispatch git commit: DISPATCH-179 - Added to-override for
deliveries via non-anonymous links. Remote management queries now work.
DISPATCH-179 - Added to-override for deliveries via non-anonymous links.
Remote management queries now work.
Project: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/commit/4fbc6e88
Tree: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/tree/4fbc6e88
Diff: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/diff/4fbc6e88
Branch: refs/heads/tross-DISPATCH-179-1
Commit: 4fbc6e88b5365a2617873a0ce39c6463752f961a
Parents: 86852b2
Author: Ted Ross <tr...@redhat.com>
Authored: Fri Jan 29 12:16:16 2016 -0500
Committer: Ted Ross <tr...@redhat.com>
Committed: Fri Jan 29 12:16:16 2016 -0500
----------------------------------------------------------------------
src/router_core/router_core.c | 12 ++++++++----
src/router_core/router_core_private.h | 3 ++-
src/router_node.c | 11 ++++++++---
3 files changed, 18 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/4fbc6e88/src/router_core/router_core.c
----------------------------------------------------------------------
diff --git a/src/router_core/router_core.c b/src/router_core/router_core.c
index b341cf4..50b694a 100644
--- a/src/router_core/router_core.c
+++ b/src/router_core/router_core.c
@@ -67,9 +67,12 @@ qdr_core_t *qdr_core(qd_dispatch_t *qd, qd_router_mode_t mode, const char *area,
//
// Perform outside-of-thread setup for the management agent
//
- core->agent_subscription = qdr_core_subscribe(core, "$management", 'M', '0',
- QD_SEMANTICS_ANYCAST_CLOSEST,
- qdr_management_agent_on_message, core);
+ core->agent_subscription_mobile = qdr_core_subscribe(core, "$management", 'M', '0',
+ QD_SEMANTICS_ANYCAST_CLOSEST,
+ qdr_management_agent_on_message, core);
+ core->agent_subscription_local = qdr_core_subscribe(core, "$management", 'L', '0',
+ QD_SEMANTICS_ANYCAST_CLOSEST,
+ qdr_management_agent_on_message, core);
return core;
}
@@ -87,7 +90,8 @@ void qdr_core_free(qdr_core_t *core)
//
// Free the core resources
//
- qdr_core_unsubscribe(core->agent_subscription);
+ qdr_core_unsubscribe(core->agent_subscription_mobile);
+ qdr_core_unsubscribe(core->agent_subscription_local);
sys_thread_free(core->thread);
sys_cond_free(core->action_cond);
sys_mutex_free(core->action_lock);
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/4fbc6e88/src/router_core/router_core_private.h
----------------------------------------------------------------------
diff --git a/src/router_core/router_core_private.h b/src/router_core/router_core_private.h
index 8b8abd9..bd7baef 100644
--- a/src/router_core/router_core_private.h
+++ b/src/router_core/router_core_private.h
@@ -404,7 +404,8 @@ struct qdr_core_t {
sys_mutex_t *query_lock;
qd_timer_t *agent_timer;
qdr_manage_response_t agent_response_handler;
- qdr_subscription_t *agent_subscription;
+ qdr_subscription_t *agent_subscription_mobile;
+ qdr_subscription_t *agent_subscription_local;
//
// Route table section
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/4fbc6e88/src/router_node.c
----------------------------------------------------------------------
diff --git a/src/router_node.c b/src/router_node.c
index 2235ba3..c63c342 100644
--- a/src/router_node.c
+++ b/src/router_node.c
@@ -295,8 +295,15 @@ static void router_rx_handler(void* context, qd_link_t *link, pn_delivery_t *pnd
delivery = qdr_link_deliver_to(rlink, msg, ingress_iter, addr_iter, pn_delivery_settled(pnd),
link_exclusions);
}
- } else
+ } else {
+ const char *r_tgt = pn_terminus_get_address(qd_link_remote_target(link));
+ if (r_tgt) {
+ qd_composed_field_t *to_override = qd_compose_subfield(0);
+ qd_compose_insert_string(to_override, r_tgt);
+ qd_message_set_to_override_annotation(msg, to_override);
+ }
delivery = qdr_link_deliver(rlink, msg, ingress_iter, pn_delivery_settled(pnd), link_exclusions);
+ }
if (delivery) {
if (pn_delivery_settled(pnd))
@@ -311,7 +318,6 @@ static void router_rx_handler(void* context, qd_link_t *link, pn_delivery_t *pnd
//
pn_delivery_update(pnd, PN_REJECTED);
pn_delivery_settle(pnd);
- qd_server_activate(qd_link_connection(link));
}
//
@@ -334,7 +340,6 @@ static void router_rx_handler(void* context, qd_link_t *link, pn_delivery_t *pnd
//
pn_delivery_update(pnd, PN_REJECTED);
pn_delivery_settle(pnd);
- qd_server_activate(qd_link_connection(link));
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org