Commit 0ab402f0 authored by jehan's avatar jehan

fix remove params

parent 42f33c1f
......@@ -27,7 +27,7 @@ int belle_sip_listening_point_get_port(const belle_sip_listening_point_t *lp);
const char *belle_sip_listening_point_get_transport(const belle_sip_listening_point_t *ip);
const char *belle_sip_listening_point_get_ip_address(const belle_sip_listening_point_t *ip);
int belle_sip_listening_point_is_reliable(const belle_sip_listening_point_t *lp);
int belle_sip_listening_point_get_well_known_port(const char *transport);
BELLE_SIP_END_DECLS
......
......@@ -473,7 +473,11 @@ GET_SET_INT_PARAM_PRIVATE(belle_sip_header_via,rport,int,_)
GET_SET_INT_PARAM_PRIVATE(belle_sip_header_via,ttl,int,_)
int belle_sip_header_via_set_rport (belle_sip_header_via_t* obj,int value) {
if (value ==-1 || (value>0 && value<65536)) {
if (value == -1) {
belle_sip_parameters_set_parameter(BELLE_SIP_PARAMETERS(obj),"rport",NULL);
return 0;
}
if (value>0 && value<65536) {
_belle_sip_header_via_set_rport(obj,value);
return 0;
} else {
......
......@@ -284,8 +284,23 @@ char *belle_sip_strdup_printf(const char *fmt,...);
strcpy((char*)(obj->attribute),value);\
} else obj->attribute=NULL;\
}
/*#define GET_SET_STRING_PARAM_NULL_ALLOWED(object_type,attribute) \
GET_STRING_PARAM2(object_type,attribute,attribute) \
void object_type##_set_##func_name (object_type##_t* obj,const char* value) {\
belle_sip_parameters_set_parameter(BELLE_SIP_PARAMETERS(obj),#attribute,value);\
}
*/
#define GET_SET_STRING_PARAM(object_type,attribute) GET_SET_STRING_PARAM2(object_type,attribute,attribute)
#define GET_SET_STRING_PARAM2(object_type,attribute,func_name) \
GET_STRING_PARAM2(object_type,attribute,func_name) \
void object_type##_set_##func_name (object_type##_t* obj,const char* value) {\
if (belle_sip_parameters_is_parameter(BELLE_SIP_PARAMETERS(obj),#attribute) && !value) {\
belle_sip_parameters_remove_parameter(BELLE_SIP_PARAMETERS(obj),#attribute); \
} else \
belle_sip_parameters_set_parameter(BELLE_SIP_PARAMETERS(obj),#attribute,value);\
}
#define GET_STRING_PARAM2(object_type,attribute,func_name) \
const char* object_type##_get_##func_name (const object_type##_t* obj) {\
const char* l_value = belle_sip_parameters_get_parameter(BELLE_SIP_PARAMETERS(obj),#attribute);\
if (l_value == NULL) { \
......@@ -293,9 +308,6 @@ char *belle_sip_strdup_printf(const char *fmt,...);
return NULL;\
}\
return l_value;\
}\
void object_type##_set_##func_name (object_type##_t* obj,const char* value) {\
belle_sip_parameters_set_parameter(BELLE_SIP_PARAMETERS(obj),#attribute,value);\
}
#define DESTROY_STRING(object,attribute) if (object->attribute) belle_sip_free((void*)object->attribute);
......
......@@ -92,6 +92,12 @@ void belle_sip_parameters_remove_parameter(belle_sip_parameters_t* params,const
/* first remove from header names list*/
if (lResult) {
params->paramnames_list=belle_sip_list_delete_link(params->paramnames_list,lResult);
/*next remove node*/
lResult = belle_sip_list_find_custom(params->param_list, (belle_sip_compare_func)belle_sip_param_pair_comp_func, name);
if (lResult) {
belle_sip_param_pair_destroy(lResult->data);
params->param_list=belle_sip_list_delete_link(params->param_list,lResult);
}
} else {
belle_sip_warning("cannot remove param \%s because not present",name);
}
......
......@@ -327,7 +327,7 @@ belle_sip_request_t *belle_sip_dialog_create_request(belle_sip_dialog_t *obj, co
belle_sip_header_to_create(obj->remote_party,NULL),
belle_sip_header_via_new(),
0);
belle_sip_message_add_headers((belle_sip_message_t*)req,obj->route_set);
if (obj->route_set) belle_sip_message_add_headers((belle_sip_message_t*)req,obj->route_set);
if (strcmp(method,"ACK")!=0) obj->local_cseq++;
return req;
}
......
......@@ -479,7 +479,7 @@ int belle_sip_headers_test_suite() {
CU_pSuite pSuite = NULL;
/* add a suite to the registry */
pSuite = CU_add_suite("header_suite", init_suite1, clean_suite1);
pSuite = CU_add_suite("Headers", init_suite1, clean_suite1);
/* add the tests to the suite */
/* NOTE - ORDER IS IMPORTANT - MUST TEST fread() AFTER fprintf() */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment