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/02/22 23:02:41 UTC
[2/3] qpid-dispatch git commit: DISPATCH_179 - Address-prefix
configuration is wired into the core and working.
DISPATCH_179 - Address-prefix configuration is wired into the core and working.
Project: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/commit/b0c0b04d
Tree: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/tree/b0c0b04d
Diff: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/diff/b0c0b04d
Branch: refs/heads/tross-DISPATCH-179-1
Commit: b0c0b04d7b774aa8ce30635ddc9403a83011b4b5
Parents: a26308d
Author: Ted Ross <tr...@redhat.com>
Authored: Mon Feb 22 14:50:54 2016 -0500
Committer: Ted Ross <tr...@redhat.com>
Committed: Mon Feb 22 14:50:54 2016 -0500
----------------------------------------------------------------------
src/router_core/agent_provisioned.c | 21 ++++++++++++++++-----
src/router_core/connections.c | 9 +++++----
2 files changed, 21 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/b0c0b04d/src/router_core/agent_provisioned.c
----------------------------------------------------------------------
diff --git a/src/router_core/agent_provisioned.c b/src/router_core/agent_provisioned.c
index 83b436f..1c99c7a 100644
--- a/src/router_core/agent_provisioned.c
+++ b/src/router_core/agent_provisioned.c
@@ -187,7 +187,8 @@ static qd_address_semantics_t qdra_semantics(qd_parsed_field_t *field)
}
-static qdr_address_t *qdra_configure_address_CT(qdr_core_t *core, qd_parsed_field_t *addr_field, char cls, qd_address_semantics_t semantics)
+static qdr_address_config_t *qdra_configure_address_prefix_CT(qdr_core_t *core, qd_parsed_field_t *addr_field, char cls,
+ qd_address_semantics_t semantics)
{
if (!addr_field)
return 0;
@@ -196,24 +197,34 @@ static qdr_address_t *qdra_configure_address_CT(qdr_core_t *core, qd_parsed_fiel
qd_address_iterator_override_prefix(iter, cls);
qd_address_iterator_reset_view(iter, ITER_VIEW_ADDRESS_HASH);
- qdr_address_t *addr = 0;
+ qdr_address_config_t *addr = 0;
qd_hash_retrieve(core->addr_hash, iter, (void**) &addr);
if (addr) {
// Log error TODO
return 0;
}
- addr = qdr_address_CT(core, semantics);
+ addr = new_qdr_address_config_t();
+ DEQ_ITEM_INIT(addr);
+ addr->semantics = semantics;
+
if (!!addr) {
qd_field_iterator_reset(iter);
qd_hash_insert(core->addr_hash, iter, addr, &addr->hash_handle);
- DEQ_INSERT_TAIL(core->addrs, addr);
+ DEQ_INSERT_TAIL(core->addr_config, addr);
}
return addr;
}
+static qdr_address_t *qdra_configure_address_CT(qdr_core_t *core, qd_parsed_field_t *addr_field, char cls,
+ qd_address_semantics_t semantics)
+{
+ return 0;
+}
+
+
void qdra_provisioned_create_CT(qdr_core_t *core, qd_field_iterator_t *name,
qdr_query_t *query, qd_parsed_field_t *in_body)
{
@@ -271,7 +282,7 @@ void qdra_provisioned_create_CT(qdr_core_t *core, qd_field_iterator_t *name,
switch (prov->object_type) {
case QDR_PROV_TYPE_ADDRESS:
- prov->addr = qdra_configure_address_CT(core, addr_field, 'Z', prov->semantics);
+ prov->addr_config = qdra_configure_address_prefix_CT(core, addr_field, 'Z', prov->semantics);
break;
case QDR_PROV_TYPE_LINK_DEST:
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/b0c0b04d/src/router_core/connections.c
----------------------------------------------------------------------
diff --git a/src/router_core/connections.c b/src/router_core/connections.c
index 94c4b95..ab9f545 100644
--- a/src/router_core/connections.c
+++ b/src/router_core/connections.c
@@ -527,15 +527,16 @@ static char qdr_prefix_for_dir(qd_direction_t dir)
static qd_address_semantics_t qdr_semantics_for_address(qdr_core_t *core, qd_field_iterator_t *iter)
{
- qdr_address_t *addr = 0;
+ qdr_address_config_t *addr = 0;
//
- // Question: Should we use a new prefix for configuration? (No: allows the possibility of
- // static routes; yes: prevents occlusion by mobile addresses with specified semantics)
+ // Set the prefix to 'Z' for configuration and do a prefix-retrieve to get the most
+ // specific match
//
qd_address_iterator_override_prefix(iter, 'Z');
qd_hash_retrieve_prefix(core->addr_hash, iter, (void**) &addr);
- return /* addr ? addr->semantics : */ QD_SEMANTICS_ANYCAST_CLOSEST; // FIXME
+ qd_address_iterator_override_prefix(iter, '\0');
+ return addr ? addr->semantics : QD_SEMANTICS_ANYCAST_CLOSEST;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org