Re: [devel] [PATCH 1 of 1] amf: handle csi attributes using long dn APIs in assignment messages [#1993]

2016-09-21 Thread Gary Lee
Hi Praveen

ack (review only) with some comments below.

On 8/9/16 7:07 pm, praveen.malv...@oracle.com wrote:
>   osaf/libs/common/amf/n2avamsg.c |   5 +-
>   osaf/services/saf/amf/amfd/csiattr.cc   |   1 +
>   osaf/services/saf/amf/amfd/util.cc  |  49 
> 
>   osaf/services/saf/amf/amfnd/comp.cc |   7 +--
>   osaf/services/saf/amf/amfnd/include/avnd_util.h |   2 +
>   osaf/services/saf/amf/amfnd/mds.cc  |   6 +++
>   osaf/services/saf/amf/amfnd/su.cc   |   2 +-
>   osaf/services/saf/amf/amfnd/util.cc |  27 +
>   8 files changed, 83 insertions(+), 16 deletions(-)
>
>
> Patch uses osaf_extended_name_alloc() APIs for manipulation of CSI attributes
> in SUSI and COMPCSI assignment messages.
>
> diff --git a/osaf/libs/common/amf/n2avamsg.c b/osaf/libs/common/amf/n2avamsg.c
> --- a/osaf/libs/common/amf/n2avamsg.c
> +++ b/osaf/libs/common/amf/n2avamsg.c
> @@ -358,7 +358,8 @@ uint32_t avsv_amf_cbk_copy(AVSV_AMF_CBK_
>   
> osaf_extended_name_alloc(osaf_extended_name_borrow(&scbk->param.csi_attr_change.csi_name),
>&(*o_dcbk)->param.csi_attr_change.csi_name);
>   /* memset avsv & amf csi attr lists */
> -memset(&(*o_dcbk)->param.csi_attr_change.attrs, 0, 
> sizeof(AVSV_CSI_ATTRS));
> + memset(&(*o_dcbk)->param.csi_attr_change.attrs, 0, 
> sizeof(AVSV_CSI_ATTRS));
> + memset(&(*o_dcbk)->param.csi_attr_change.csiAttr, 0, 
> sizeof(SaAmfCSIAttributeListT));
>   /* copy the avsv csi attr list */
>   if (scbk->param.csi_attr_change.attrs.number > 0) {
>   (*o_dcbk)->param.csi_attr_change.attrs.list =
> @@ -371,7 +372,7 @@ uint32_t avsv_amf_cbk_copy(AVSV_AMF_CBK_
>   memcpy((*o_dcbk)->param.csi_attr_change.attrs.list,
>   scbk->param.csi_attr_change.attrs.list,
>   sizeof(AVSV_ATTR_NAME_VAL) * 
> scbk->param.csi_attr_change.attrs.number);
> - for (i = 0; i < scbk->param.csi_set.attrs.number; i++) {
> + for (i = 0; i < 
> scbk->param.csi_attr_change.attrs.number; i++) {
>   
> osaf_extended_name_alloc(osaf_extended_name_borrow(&scbk->param.csi_attr_change.attrs.list[i].name),
>   
>  &(*o_dcbk)->param.csi_attr_change.attrs.list[i].name);
>   
> osaf_extended_name_alloc(osaf_extended_name_borrow(&scbk->param.csi_attr_change.attrs.list[i].value),
> diff --git a/osaf/services/saf/amf/amfd/csiattr.cc 
> b/osaf/services/saf/amf/amfd/csiattr.cc
> --- a/osaf/services/saf/amf/amfd/csiattr.cc
> +++ b/osaf/services/saf/amf/amfd/csiattr.cc
> @@ -577,6 +577,7 @@ static void csiattr_modify_apply(CcbUtil
>   
> osaf_extended_name_alloc(csi_attr_name.c_str(), &csiattr->name_value.name);
>   csiattr->name_value.string_ptr = new 
> char[strlen(value)+1]();
>   memcpy(csiattr->name_value.string_ptr, 
> value, strlen(value)+1 );
> + 
> osaf_extended_name_alloc(csiattr->name_value.string_ptr, 
> &csiattr->name_value.value);
>   } /* for  */
>   }
>   /* add the modified csiattr values to parent csi */
> diff --git a/osaf/services/saf/amf/amfd/util.cc 
> b/osaf/services/saf/amf/amfd/util.cc
> --- a/osaf/services/saf/amf/amfd/util.cc
> +++ b/osaf/services/saf/amf/amfd/util.cc
> @@ -660,11 +660,21 @@ static uint32_t avd_prep_csi_attr_info(A
>   /* Scan the list of attributes for the CSI and add it to the message */
>   while ((attr_ptr != nullptr) && (compcsi_info->attrs.number < 
> compcsi->csi->num_attributes)) {
>   memcpy(i_ptr, &attr_ptr->name_value, 
> sizeof(AVSV_ATTR_NAME_VAL));
> + 
> osaf_extended_name_alloc(osaf_extended_name_borrow(&attr_ptr->name_value.name),
> + &i_ptr->name);
> + 
> osaf_extended_name_alloc(osaf_extended_name_borrow(&attr_ptr->name_value.value),
> + &i_ptr->value);
> + if (attr_ptr->name_value.string_ptr != nullptr) {
> + i_ptr->string_ptr = new 
> char[strlen(attr_ptr->name_value.string_ptr)+1];
> + memcpy(i_ptr->string_ptr, 
> attr_ptr->name_value.string_ptr,
> + 
> strlen(attr_ptr->name_value.string_ptr)+1);
> + } else {
> + i_ptr->string_ptr = nullptr;
> + }
>   compcsi_info->attrs.number++;
>   i_ptr = i_ptr + 1;
>   attr_ptr = attr_ptr->attr_next;
>   }
> -
>   TRACE_LEAVE();
>   return N

[devel] [PATCH 1 of 1] amf: handle csi attributes using long dn APIs in assignment messages [#1993]

2016-09-08 Thread praveen . malviya
 osaf/libs/common/amf/n2avamsg.c |   5 +-
 osaf/services/saf/amf/amfd/csiattr.cc   |   1 +
 osaf/services/saf/amf/amfd/util.cc  |  49 
 osaf/services/saf/amf/amfnd/comp.cc |   7 +--
 osaf/services/saf/amf/amfnd/include/avnd_util.h |   2 +
 osaf/services/saf/amf/amfnd/mds.cc  |   6 +++
 osaf/services/saf/amf/amfnd/su.cc   |   2 +-
 osaf/services/saf/amf/amfnd/util.cc |  27 +
 8 files changed, 83 insertions(+), 16 deletions(-)


Patch uses osaf_extended_name_alloc() APIs for manipulation of CSI attributes
in SUSI and COMPCSI assignment messages.

diff --git a/osaf/libs/common/amf/n2avamsg.c b/osaf/libs/common/amf/n2avamsg.c
--- a/osaf/libs/common/amf/n2avamsg.c
+++ b/osaf/libs/common/amf/n2avamsg.c
@@ -358,7 +358,8 @@ uint32_t avsv_amf_cbk_copy(AVSV_AMF_CBK_

osaf_extended_name_alloc(osaf_extended_name_borrow(&scbk->param.csi_attr_change.csi_name),
 &(*o_dcbk)->param.csi_attr_change.csi_name);
 /* memset avsv & amf csi attr lists */
-memset(&(*o_dcbk)->param.csi_attr_change.attrs, 0, 
sizeof(AVSV_CSI_ATTRS));
+   memset(&(*o_dcbk)->param.csi_attr_change.attrs, 0, 
sizeof(AVSV_CSI_ATTRS));
+   memset(&(*o_dcbk)->param.csi_attr_change.csiAttr, 0, 
sizeof(SaAmfCSIAttributeListT));
 /* copy the avsv csi attr list */
 if (scbk->param.csi_attr_change.attrs.number > 0) {
 (*o_dcbk)->param.csi_attr_change.attrs.list = 
@@ -371,7 +372,7 @@ uint32_t avsv_amf_cbk_copy(AVSV_AMF_CBK_
memcpy((*o_dcbk)->param.csi_attr_change.attrs.list,
scbk->param.csi_attr_change.attrs.list,
sizeof(AVSV_ATTR_NAME_VAL) * 
scbk->param.csi_attr_change.attrs.number);
-   for (i = 0; i < scbk->param.csi_set.attrs.number; i++) {
+   for (i = 0; i < 
scbk->param.csi_attr_change.attrs.number; i++) {

osaf_extended_name_alloc(osaf_extended_name_borrow(&scbk->param.csi_attr_change.attrs.list[i].name),

  &(*o_dcbk)->param.csi_attr_change.attrs.list[i].name);
 
osaf_extended_name_alloc(osaf_extended_name_borrow(&scbk->param.csi_attr_change.attrs.list[i].value),
diff --git a/osaf/services/saf/amf/amfd/csiattr.cc 
b/osaf/services/saf/amf/amfd/csiattr.cc
--- a/osaf/services/saf/amf/amfd/csiattr.cc
+++ b/osaf/services/saf/amf/amfd/csiattr.cc
@@ -577,6 +577,7 @@ static void csiattr_modify_apply(CcbUtil

osaf_extended_name_alloc(csi_attr_name.c_str(), &csiattr->name_value.name);
csiattr->name_value.string_ptr = new 
char[strlen(value)+1]();
memcpy(csiattr->name_value.string_ptr, 
value, strlen(value)+1 );
+   
osaf_extended_name_alloc(csiattr->name_value.string_ptr, 
&csiattr->name_value.value);
} /* for  */
}
/* add the modified csiattr values to parent csi */
diff --git a/osaf/services/saf/amf/amfd/util.cc 
b/osaf/services/saf/amf/amfd/util.cc
--- a/osaf/services/saf/amf/amfd/util.cc
+++ b/osaf/services/saf/amf/amfd/util.cc
@@ -660,11 +660,21 @@ static uint32_t avd_prep_csi_attr_info(A
/* Scan the list of attributes for the CSI and add it to the message */
while ((attr_ptr != nullptr) && (compcsi_info->attrs.number < 
compcsi->csi->num_attributes)) {
memcpy(i_ptr, &attr_ptr->name_value, 
sizeof(AVSV_ATTR_NAME_VAL));
+   
osaf_extended_name_alloc(osaf_extended_name_borrow(&attr_ptr->name_value.name),
+   &i_ptr->name);
+   
osaf_extended_name_alloc(osaf_extended_name_borrow(&attr_ptr->name_value.value),
+   &i_ptr->value);
+   if (attr_ptr->name_value.string_ptr != nullptr) {
+   i_ptr->string_ptr = new 
char[strlen(attr_ptr->name_value.string_ptr)+1];
+   memcpy(i_ptr->string_ptr, 
attr_ptr->name_value.string_ptr,
+   
strlen(attr_ptr->name_value.string_ptr)+1);
+   } else {
+   i_ptr->string_ptr = nullptr;
+   }
compcsi_info->attrs.number++;
i_ptr = i_ptr + 1;
attr_ptr = attr_ptr->attr_next;
}
-
TRACE_LEAVE();
return NCSCC_RC_SUCCESS;
 }
@@ -1684,6 +1694,7 @@ static void free_d2n_susi_msg_info(AVSV_
 {
TRACE_ENTER();
AVSV_SUSI_ASGN *compcsi_info;
+   uint16_t i;
 
osaf_extended_name_free(&susi_msg->msg_info.d2n_su_si_assign.si