Repository: qpid-dispatch
Updated Branches:
  refs/heads/tross-DISPATCH-179-1 8fb13f56c -> 6dfb3dc18


DISPATCH-179 - Fixed crash in link-route create via management protocol.


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

Branch: refs/heads/tross-DISPATCH-179-1
Commit: b3e011e3fb82630f7df68bb97228f587541e3fca
Parents: 8fb13f5
Author: Ted Ross <[email protected]>
Authored: Thu Mar 17 07:11:18 2016 -0400
Committer: Ted Ross <[email protected]>
Committed: Thu Mar 17 07:11:18 2016 -0400

----------------------------------------------------------------------
 src/router_core/agent_config_auto_link.c  |  2 +-
 src/router_core/agent_config_link_route.c |  2 +-
 src/router_core/route_control.c           | 16 ++++++++-------
 src/router_core/route_control.h           | 28 +++++++++++++-------------
 4 files changed, 25 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/b3e011e3/src/router_core/agent_config_auto_link.c
----------------------------------------------------------------------
diff --git a/src/router_core/agent_config_auto_link.c 
b/src/router_core/agent_config_auto_link.c
index b18fb90..d81c6a4 100644
--- a/src/router_core/agent_config_auto_link.c
+++ b/src/router_core/agent_config_auto_link.c
@@ -78,7 +78,7 @@ static void 
qdr_config_auto_link_insert_column_CT(qdr_auto_link_t *al, int col,
     case QDR_CONFIG_AUTO_LINK_ADDR:
         key = (const char*) qd_hash_key_by_handle(al->addr->hash_handle);
         if (key && key[0] == 'M')
-            qd_compose_insert_string(body, &key[1]);
+            qd_compose_insert_string(body, &key[2]);
         else
             qd_compose_insert_null(body);
         break;

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/b3e011e3/src/router_core/agent_config_link_route.c
----------------------------------------------------------------------
diff --git a/src/router_core/agent_config_link_route.c 
b/src/router_core/agent_config_link_route.c
index bfdc70f..b3397db 100644
--- a/src/router_core/agent_config_link_route.c
+++ b/src/router_core/agent_config_link_route.c
@@ -373,7 +373,7 @@ void qdra_config_link_route_create_CT(qdr_core_t          
*core,
         bool               is_container = !!container_field;
         qd_parsed_field_t *in_use_conn  = is_container ? container_field : 
connection_field;
 
-        qdr_route_add_link_route_CT(core, name, prefix_field, in_use_conn, 
is_container, trt, dir);
+        lr = qdr_route_add_link_route_CT(core, name, prefix_field, 
in_use_conn, is_container, trt, dir);
 
         //
         // Compose the result map for the response.

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/b3e011e3/src/router_core/route_control.c
----------------------------------------------------------------------
diff --git a/src/router_core/route_control.c b/src/router_core/route_control.c
index 9ddad29..23bda17 100644
--- a/src/router_core/route_control.c
+++ b/src/router_core/route_control.c
@@ -150,13 +150,13 @@ static void qdr_auto_link_deactivate_CT(qdr_core_t *core, 
qdr_auto_link_t *al, q
 }
 
 
-void qdr_route_add_link_route_CT(qdr_core_t             *core,
-                                 qd_field_iterator_t    *name,
-                                 qd_parsed_field_t      *prefix_field,
-                                 qd_parsed_field_t      *conn_id,
-                                 bool                    is_container,
-                                 qd_address_treatment_t  treatment,
-                                 qd_direction_t          dir)
+qdr_link_route_t *qdr_route_add_link_route_CT(qdr_core_t             *core,
+                                              qd_field_iterator_t    *name,
+                                              qd_parsed_field_t      
*prefix_field,
+                                              qd_parsed_field_t      *conn_id,
+                                              bool                    
is_container,
+                                              qd_address_treatment_t  
treatment,
+                                              qd_direction_t          dir)
 {
     qdr_link_route_t *lr = new_qdr_link_route_t();
 
@@ -197,6 +197,8 @@ void qdr_route_add_link_route_CT(qdr_core_t             
*core,
     // Add the link route to the core list
     //
     DEQ_INSERT_TAIL(core->link_routes, lr);
+
+    return lr;
 }
 
 

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/b3e011e3/src/router_core/route_control.h
----------------------------------------------------------------------
diff --git a/src/router_core/route_control.h b/src/router_core/route_control.h
index 34b8bd9..f5a8359 100644
--- a/src/router_core/route_control.h
+++ b/src/router_core/route_control.h
@@ -21,23 +21,23 @@
 
 #include "router_core_private.h"
 
-void qdr_route_add_link_route_CT(qdr_core_t             *core,
-                                 qd_field_iterator_t    *name,
-                                 qd_parsed_field_t      *prefix_field,
-                                 qd_parsed_field_t      *conn_id,
-                                 bool                    is_container,
-                                 qd_address_treatment_t  treatment,
-                                 qd_direction_t          dir);
+qdr_link_route_t *qdr_route_add_link_route_CT(qdr_core_t             *core,
+                                              qd_field_iterator_t    *name,
+                                              qd_parsed_field_t      
*prefix_field,
+                                              qd_parsed_field_t      *conn_id,
+                                              bool                    
is_container,
+                                              qd_address_treatment_t  
treatment,
+                                              qd_direction_t          dir);
 
 void qdr_route_del_link_route_CT(qdr_core_t *core, qdr_link_route_t *lr);
 
-qdr_auto_link_t *qdr_route_add_auto_link_CT(qdr_core_t             *core,
-                                            qd_field_iterator_t    *name,
-                                            qd_parsed_field_t      *addr_field,
-                                            qd_direction_t          dir,
-                                            int                     phase,
-                                            qd_parsed_field_t      *conn_id,
-                                            bool                    
is_container);
+qdr_auto_link_t *qdr_route_add_auto_link_CT(qdr_core_t          *core,
+                                            qd_field_iterator_t *name,
+                                            qd_parsed_field_t   *addr_field,
+                                            qd_direction_t       dir,
+                                            int                  phase,
+                                            qd_parsed_field_t   *conn_id,
+                                            bool                 is_container);
 
 void qdr_route_del_auto_link_CT(qdr_core_t *core, qdr_auto_link_t *auto_link);
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to