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
liblinphone
Commits
02ef798b
Commit
02ef798b
authored
Oct 20, 2015
by
Simon Morlat
Browse files
fix crash with presence. A subscribe refresh must be notified to the upper layer.
parent
cf94b7ac
Changes
2
Hide whitespace changes
Inline
Side-by-side
coreapi/bellesip_sal/sal_op_presence.c
View file @
02ef798b
...
...
@@ -225,7 +225,6 @@ static void presence_process_request_event(void *op_base, const belle_sip_reques
belle_sip_server_transaction_t
*
server_transaction
=
belle_sip_provider_create_server_transaction
(
op
->
base
.
root
->
prov
,
belle_sip_request_event_get_request
(
event
));
belle_sip_request_t
*
req
=
belle_sip_request_event_get_request
(
event
);
belle_sip_dialog_state_t
dialog_state
;
belle_sip_header_expires_t
*
expires
=
belle_sip_message_get_header_by_type
(
req
,
belle_sip_header_expires_t
);
belle_sip_response_t
*
resp
;
const
char
*
method
=
belle_sip_request_get_method
(
req
);
...
...
@@ -259,13 +258,11 @@ static void presence_process_request_event(void *op_base, const belle_sip_reques
if
(
strcmp
(
"NOTIFY"
,
method
)
==
0
)
{
handle_notify
(
op
,
req
,
belle_sip_request_event_get_dialog
(
event
));
}
else
if
(
strcmp
(
"SUBSCRIBE"
,
method
)
==
0
)
{
/*either a refresh or an unsubscribe*/
if
(
expires
&&
belle_sip_header_expires_get_expires
(
expires
)
>
0
)
{
op
->
base
.
root
->
callbacks
.
subscribe_presence_received
(
op
,
sal_op_get_from
(
op
));
}
else
{
resp
=
sal_op_create_response_from_request
(
op
,
req
,
200
);
belle_sip_server_transaction_send_response
(
server_transaction
,
resp
);
}
/*either a refresh or an unsubscribe.
If it is a refresh there is nothing to notify to the app. If it is an unSUBSCRIBE, then the dialog
will be terminated shortly, and this will be notified to the app through the dialog_terminated callback.*/
resp
=
sal_op_create_response_from_request
(
op
,
req
,
200
);
belle_sip_server_transaction_send_response
(
server_transaction
,
resp
);
}
break
;
default:
...
...
coreapi/friend.c
View file @
02ef798b
...
...
@@ -278,6 +278,7 @@ static void linphone_friend_invalidate_subscription(LinphoneFriend *lf){
void
linphone_friend_close_subscriptions
(
LinphoneFriend
*
lf
){
linphone_friend_unsubscribe
(
lf
);
ms_list_for_each
(
lf
->
insubs
,
(
MSIterateFunc
)
sal_notify_presence_close
);
lf
->
insubs
=
ms_list_free_with_data
(
lf
->
insubs
,
(
MSIterateFunc
)
sal_op_release
);
}
static
void
_linphone_friend_destroy
(
LinphoneFriend
*
lf
){
...
...
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