Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
liblinphone
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
10
Issues
10
List
Board
Labels
Milestones
Merge Requests
22
Merge Requests
22
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
External Wiki
External Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
BC
public
liblinphone
Commits
03130daa
Commit
03130daa
authored
Aug 03, 2017
by
Ghislain MARY
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Prevent crash in message tests.
parent
db52ddaa
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
17 additions
and
12 deletions
+17
-12
chat.c
coreapi/chat.c
+9
-8
chat_file_transfer.c
coreapi/chat_file_transfer.c
+6
-2
private.h
coreapi/private.h
+1
-0
message_tester.c
tester/message_tester.c
+1
-2
No files found.
coreapi/chat.c
View file @
03130daa
...
...
@@ -117,13 +117,14 @@ void linphone_chat_message_cbs_set_file_transfer_progress_indication(
BELLE_SIP_DECLARE_NO_IMPLEMENTED_INTERFACES
(
LinphoneChatMessage
);
static
void
_linphone_chat_room_destroy
(
LinphoneChatRoom
*
cr
)
{
bctbx_list_free_with_data
(
cr
->
transient_messages
,
(
void
(
*
)(
void
*
))
linphone_chat_message_release
);
if
(
cr
->
received_rtt_characters
)
{
cr
->
received_rtt_characters
=
bctbx_list_free_with_data
(
cr
->
received_rtt_characters
,
(
void
(
*
)(
void
*
))
ms_free
);
}
linphone_chat_room_delete_composing_idle_timer
(
cr
);
linphone_chat_room_delete_composing_refresh_timer
(
cr
);
linphone_chat_room_delete_remote_composing_refresh_timer
(
cr
);
bctbx_list_free_with_data
(
cr
->
transient_messages
,
(
bctbx_list_free_func
)
linphone_chat_message_release
);
if
(
cr
->
weak_messages
!=
NULL
)
bctbx_list_free
(
cr
->
weak_messages
);
if
(
cr
->
received_rtt_characters
)
{
cr
->
received_rtt_characters
=
bctbx_list_free_with_data
(
cr
->
received_rtt_characters
,
(
bctbx_list_free_func
)
ms_free
);
}
if
(
cr
->
lc
!=
NULL
)
{
if
(
bctbx_list_find
(
cr
->
lc
->
chatrooms
,
cr
))
{
ms_error
(
"LinphoneChatRoom[%p] is destroyed while still being used by the LinphoneCore. This is abnormal."
...
...
@@ -138,7 +139,6 @@ static void _linphone_chat_room_destroy(LinphoneChatRoom *cr) {
if
(
cr
->
pending_message
)
linphone_chat_message_destroy
(
cr
->
pending_message
);
ms_free
(
cr
->
peer
);
if
(
cr
->
weak_messages
!=
NULL
)
bctbx_list_free
(
cr
->
weak_messages
);
}
void
linphone_chat_message_set_state
(
LinphoneChatMessage
*
msg
,
LinphoneChatMessageState
state
)
{
...
...
@@ -313,6 +313,7 @@ void linphone_chat_room_release(LinphoneChatRoom *cr) {
linphone_chat_room_delete_composing_refresh_timer
(
cr
);
linphone_chat_room_delete_remote_composing_refresh_timer
(
cr
);
bctbx_list_for_each
(
cr
->
weak_messages
,
(
bctbx_list_iterate_func
)
linphone_chat_message_deactivate
);
bctbx_list_for_each
(
cr
->
transient_messages
,
(
bctbx_list_iterate_func
)
linphone_chat_message_deactivate
);
cr
->
lc
=
NULL
;
linphone_chat_room_unref
(
cr
);
}
...
...
@@ -1717,11 +1718,11 @@ void linphone_chat_message_unref(LinphoneChatMessage *msg) {
}
static
void
linphone_chat_message_deactivate
(
LinphoneChatMessage
*
msg
){
/*mark the chat msg as orphan (it has no chat room anymore)*/
msg
->
chat_room
=
NULL
;
if
(
msg
->
file_transfer_information
!=
NULL
)
{
linphone_chat_message_cancel_file_transfer
(
msg
);
_linphone_chat_message_cancel_file_transfer
(
msg
,
FALSE
);
}
/*mark the chat msg as orphan (it has no chat room anymore)*/
msg
->
chat_room
=
NULL
;
}
static
void
linphone_chat_message_release
(
LinphoneChatMessage
*
msg
)
{
...
...
coreapi/chat_file_transfer.c
View file @
03130daa
...
...
@@ -613,7 +613,7 @@ void linphone_chat_message_start_file_download(LinphoneChatMessage *msg,
linphone_chat_message_download_file
(
msg
);
}
void
linphone_chat_message_cancel_file_transfer
(
LinphoneChatMessage
*
msg
)
{
void
_linphone_chat_message_cancel_file_transfer
(
LinphoneChatMessage
*
msg
,
bool_t
unref
)
{
if
(
msg
->
http_request
)
{
if
(
msg
->
state
==
LinphoneChatMessageStateInProgress
)
{
linphone_chat_message_set_state
(
msg
,
LinphoneChatMessageStateNotDelivered
);
...
...
@@ -625,7 +625,7 @@ void linphone_chat_message_cancel_file_transfer(LinphoneChatMessage *msg) {
,
msg
,
msg
->
chat_room
);
belle_http_provider_cancel_request
(
msg
->
chat_room
->
lc
->
http_provider
,
msg
->
http_request
);
if
(
msg
->
dir
==
LinphoneChatMessageOutgoing
)
{
if
(
(
msg
->
dir
==
LinphoneChatMessageOutgoing
)
&&
unref
)
{
// must release it
linphone_chat_message_unref
(
msg
);
}
...
...
@@ -639,6 +639,10 @@ void linphone_chat_message_cancel_file_transfer(LinphoneChatMessage *msg) {
}
}
void
linphone_chat_message_cancel_file_transfer
(
LinphoneChatMessage
*
msg
)
{
_linphone_chat_message_cancel_file_transfer
(
msg
,
TRUE
);
}
void
linphone_chat_message_set_file_transfer_filepath
(
LinphoneChatMessage
*
msg
,
const
char
*
filepath
)
{
if
(
msg
->
file_transfer_filepath
!=
NULL
)
{
ms_free
(
msg
->
file_transfer_filepath
);
...
...
coreapi/private.h
View file @
03130daa
...
...
@@ -657,6 +657,7 @@ void linphone_chat_message_set_state(LinphoneChatMessage *msg, LinphoneChatMessa
void
linphone_chat_message_set_is_secured
(
LinphoneChatMessage
*
msg
,
bool_t
secured
);
void
linphone_chat_message_send_delivery_notification
(
LinphoneChatMessage
*
cm
,
LinphoneReason
reason
);
void
linphone_chat_message_send_display_notification
(
LinphoneChatMessage
*
cm
);
void
_linphone_chat_message_cancel_file_transfer
(
LinphoneChatMessage
*
msg
,
bool_t
unref
);
int
linphone_chat_room_upload_file
(
LinphoneChatMessage
*
msg
);
void
_linphone_chat_room_send_message
(
LinphoneChatRoom
*
cr
,
LinphoneChatMessage
*
msg
);
LinphoneChatMessageCbs
*
linphone_chat_message_cbs_new
(
void
);
...
...
tester/message_tester.c
View file @
03130daa
...
...
@@ -1793,9 +1793,8 @@ void file_transfer_io_error_base(char *server_url, bool_t destroy_room) {
linphone_chat_room_send_chat_message
(
chatroom
,
msg
);
BC_ASSERT_TRUE
(
wait_for_until
(
marie
->
lc
,
NULL
,
&
marie
->
stat
.
number_of_LinphoneMessageInProgress
,
1
,
1000
));
if
(
destroy_room
)
{
//since message is orphan, we do not expect to be notified of state change
linphone_core_delete_chat_room
(
marie
->
lc
,
chatroom
);
BC_ASSERT_
FALS
E
(
wait_for_until
(
marie
->
lc
,
NULL
,
&
marie
->
stat
.
number_of_LinphoneMessageNotDelivered
,
1
,
1000
));
BC_ASSERT_
TRU
E
(
wait_for_until
(
marie
->
lc
,
NULL
,
&
marie
->
stat
.
number_of_LinphoneMessageNotDelivered
,
1
,
1000
));
}
else
{
BC_ASSERT_TRUE
(
wait_for_until
(
marie
->
lc
,
NULL
,
&
marie
->
stat
.
number_of_LinphoneMessageNotDelivered
,
1
,
3000
));
}
...
...
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