Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
BC
public
belle-sip
Commits
0f7df104
Commit
0f7df104
authored
Jul 14, 2013
by
Simon Morlat
Browse files
preserve via parameters in belle_sip_dialog_create_request_from()
parent
8e571e5f
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
17 additions
and
1 deletion
+17
-1
include/belle-sip/parameters.h
include/belle-sip/parameters.h
+2
-0
src/belle_sip_parameters.c
src/belle_sip_parameters.c
+6
-1
src/dialog.c
src/dialog.c
+8
-0
src/message.c
src/message.c
+1
-0
No files found.
include/belle-sip/parameters.h
View file @
0f7df104
...
...
@@ -54,6 +54,8 @@ BELLESIP_EXPORT void belle_sip_parameters_remove_parameter(belle_sip_parameters_
BELLESIP_EXPORT
belle_sip_error_code
belle_sip_parameters_marshal
(
const
belle_sip_parameters_t
*
obj
,
char
*
buff
,
size_t
buff_size
,
size_t
*
offset
);
BELLESIP_EXPORT
void
belle_sip_parameters_copy_parameters_from
(
belle_sip_parameters_t
*
params
,
const
belle_sip_parameters_t
*
orig
);
#define BELLE_SIP_PARAMETERS(obj) BELLE_SIP_CAST(obj,belle_sip_parameters_t)
#endif
/*PARAMETERS_H_*/
...
...
src/belle_sip_parameters.c
View file @
0f7df104
...
...
@@ -33,7 +33,7 @@ static void belle_sip_parameters_destroy(belle_sip_parameters_t* params) {
belle_sip_parameters_clean
(
params
);
}
static
void
belle_sip_parameters_c
lone
(
belle_sip_parameters_t
*
params
,
const
belle_sip_parameters_t
*
orig
){
void
belle_sip_parameters_c
opy_parameters_from
(
belle_sip_parameters_t
*
params
,
const
belle_sip_parameters_t
*
orig
){
belle_sip_list_t
*
list
=
orig
->
param_list
;
for
(;
list
!=
NULL
;
list
=
list
->
next
){
belle_sip_param_pair_t
*
container
=
(
belle_sip_param_pair_t
*
)(
list
->
data
);
...
...
@@ -41,6 +41,11 @@ static void belle_sip_parameters_clone(belle_sip_parameters_t *params, const bel
}
}
static
void
belle_sip_parameters_clone
(
belle_sip_parameters_t
*
params
,
const
belle_sip_parameters_t
*
orig
){
belle_sip_parameters_copy_parameters_from
(
params
,
orig
);
}
belle_sip_error_code
belle_sip_parameters_marshal
(
const
belle_sip_parameters_t
*
params
,
char
*
buff
,
size_t
buff_size
,
size_t
*
offset
)
{
belle_sip_list_t
*
list
=
params
->
param_list
;
belle_sip_error_code
error
=
BELLE_SIP_OK
;
...
...
src/dialog.c
View file @
0f7df104
...
...
@@ -553,6 +553,14 @@ belle_sip_request_t *belle_sip_dialog_create_request_from(belle_sip_dialog_t *ob
belle_sip_list_t
*
headers
=
belle_sip_message_get_all_headers
(
BELLE_SIP_MESSAGE
(
initial_req
));
belle_sip_list_for_each2
(
headers
,(
void
(
*
)(
void
*
,
void
*
))
copy_non_system_headers
,
req
);
belle_sip_list_free
(
headers
);
/*replicate via user parameters, if any, useful for 'alias' parameter in SUBSCRIBE requests*/
{
belle_sip_header_via_t
*
orig_via
=
belle_sip_message_get_header_by_type
(
BELLE_SIP_MESSAGE
(
initial_req
),
belle_sip_header_via_t
);
belle_sip_header_via_t
*
new_via
=
belle_sip_message_get_header_by_type
(
BELLE_SIP_MESSAGE
(
req
),
belle_sip_header_via_t
);
belle_sip_parameters_copy_parameters_from
(
BELLE_SIP_PARAMETERS
(
new_via
),
BELLE_SIP_PARAMETERS
(
orig_via
));
}
/*copy body*/
if
(
content_lenth
&&
belle_sip_header_content_length_get_content_length
(
content_lenth
)
>
0
)
{
belle_sip_message_set_body
(
BELLE_SIP_MESSAGE
(
req
),
belle_sip_message_get_body
(
BELLE_SIP_MESSAGE
(
initial_req
)),
belle_sip_header_content_length_get_content_length
(
content_lenth
));
...
...
src/message.c
View file @
0f7df104
...
...
@@ -613,6 +613,7 @@ int belle_sip_response_fix_contact(const belle_sip_response_t* response,belle_si
}
return
0
;
}
belle_sip_request_t
*
belle_sip_request_clone_with_body
(
const
belle_sip_request_t
*
initial_req
)
{
belle_sip_request_t
*
req
=
BELLE_SIP_REQUEST
(
belle_sip_object_clone
(
BELLE_SIP_OBJECT
(
initial_req
)));
if
(
belle_sip_message_get_body
(
BELLE_SIP_MESSAGE
(
initial_req
)))
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment