From 2b0c8d3ed3955c7b0e14bc572e4df11973db64fa Mon Sep 17 00:00:00 2001 From: zribiahmed Date: Fri, 23 Nov 2012 18:19:52 +0000 Subject: [PATCH] fix some issues --- src/GetParameterAttributes.c | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/src/GetParameterAttributes.c b/src/GetParameterAttributes.c index 7cc2ac4..5ed077d 100644 --- a/src/GetParameterAttributes.c +++ b/src/GetParameterAttributes.c @@ -68,6 +68,7 @@ int cwmp_rpc_cpe_getParameterAttributes_response_data_init(struct cwmp *cwmp, st struct _cwmp1__GetParameterAttributesResponse *p_soap_cwmp1__GetParameterAttributesResponse; struct cwmp1__ParameterAttributeStruct **ptr_ParameterAttributeStruct; struct cwmp1ParameterAttributeList *ParameterList; + struct cwmp1AccessList *AccessList; struct list_head *list; struct external_parameter *external_parameter; char **name; @@ -141,11 +142,17 @@ int cwmp_rpc_cpe_getParameterAttributes_response_data_init(struct cwmp *cwmp, st ParameterList->__ptrParameterAttributeStruct = ptr_ParameterAttributeStruct; p_soap_cwmp1__GetParameterAttributesResponse->ParameterList = ParameterList; + while (external_list_parameter.next!=&external_list_parameter) { external_parameter = list_entry(external_list_parameter.next, struct external_parameter, list); + AccessList = calloc(1,sizeof(struct cwmp1AccessList)); + AccessList->__ptrstring = calloc(1,sizeof(char *)); + *(AccessList->__ptrstring) = strdup("Subscriber"); + AccessList->__size = 1; *ptr_ParameterAttributeStruct = calloc(1,sizeof(struct cwmp1__ParameterAttributeStruct)); (*ptr_ParameterAttributeStruct)->Name = external_parameter->name; (*ptr_ParameterAttributeStruct)->Notification = atoi(external_parameter->data); + (*ptr_ParameterAttributeStruct)->AccessList = AccessList; ptr_ParameterAttributeStruct++; list_del(&external_parameter->list); @@ -169,8 +176,8 @@ int cwmp_rpc_cpe_getParameterAttributes_end(struct cwmp *cwmp, struct session *s { struct _cwmp1__GetParameterAttributesResponse *p_soap_cwmp1__GetParameterAttributesResponse; struct cwmp1__ParameterAttributeStruct **ptrParameterAttributeStruct,*pParameterAttributeStruct; - char **ptrAccessList,*pAccessList; - int i,j,size_ParameterAttributeStruct,size_AccessList; + char **ptrAccessList; + int i,size_ParameterAttributeStruct; p_soap_cwmp1__GetParameterAttributesResponse = (struct _cwmp1__GetParameterAttributesResponse *)this->method_response_data; @@ -190,17 +197,8 @@ int cwmp_rpc_cpe_getParameterAttributes_end(struct cwmp *cwmp, struct session *s } if(pParameterAttributeStruct->AccessList != NULL) { - size_AccessList = pParameterAttributeStruct->AccessList->__size; - ptrAccessList = pParameterAttributeStruct->AccessList->__ptrstring; - for(j=0;jAccessList->__ptrstring)); + free(pParameterAttributeStruct->AccessList->__ptrstring); free(pParameterAttributeStruct->AccessList); }