Re: [devel] [PATCH 1 of 1] amf: handle csi attributes using long dn APIs in assignment messages [#1993]
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]
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