Commit Graph

16914 Commits

Author SHA1 Message Date
f20373cda2 media_decoder: handle invalid data in AVPacket
This fixes a crash when receiving invalid data in an AVPacket.

Gitlab: #1116
Change-Id: Ie5e102413d94f05b3c8935501b57839b31b98569
2025-06-04 11:47:14 -04:00
52fc02f036 manager: handle swarm calls on jami accounts only
Change-Id: I7850183c9265ad83e921bd78071828452717597b
2025-05-27 11:59:11 -04:00
86014b4005 MessageChannelHandler: increase read buffer size
Change-Id: I83ae33f163fd533b6cb92a8f1fb6afdf930cd948
2025-05-27 11:58:59 -04:00
54702ec7dd jamiaccount: always return true on presence notification
Change-Id: If25ec9b8dda7b9d1c5e48b316251f3cdb9d93919
2025-05-27 11:58:46 -04:00
0184863d26 siptransport: log cleanup
Change-Id: I06f70f79c97e9ed42b36315f329b7840e689e65c
2025-05-27 11:58:43 -04:00
20f8e7e1ce sync module: clear buffer before sending preferences
Change-Id: I51f79c4346deedf148016fb4acdb47fa8f3f2c19
2025-05-27 11:27:39 -04:00
e18dcee2b5 AccountManager: avoid saving contacts if no change
Change-Id: I89a5aea23d1c64566404b4bc0cfa9d8bddfaf46e
2025-05-27 11:27:39 -04:00
07ba87d417 MessageChannelHandler: emplace back new connection
Change-Id: I052792afdc89cd0fa8095c8029320f7efac7ee97
2025-05-27 11:27:39 -04:00
018a4227f5 portaudiolayer: protect concurrent streams array access
Hotplug events may trigger a race condition when accessing the streams
array. This commit protects the access to the streams array by locking
a mutex. Locks are only acquired when streams are added, removed, or
initialized.

Gitlab: #1130
Change-Id: Ide0f2bfba47bf597981b26cce8d37ca076c7173b
2025-05-26 18:18:03 -04:00
1bca75aa4e portaudiolayer: fix stop-stream routine
The return value of Pa_IsStreamStopped() was not checked correctly, and
the stream pointers were not reset to nullptr. This could theoretically
lead to a crash if we were to try to stop an non-null stream pointer.

Gitlab: #1130
Change-Id: If2cf3a05b76c8c2d9c7d1ba53606c80e86516b77
2025-05-26 18:17:56 -04:00
5645210a2d jamiaccount: fix crash when calling without a connection
This commit places a null check for the connectionManager before getting
the ice options in the `newOutgoingCall` method, which fixes a crash
when calling without a connection.

Gitlab: #1129
Change-Id: Ia6872f6fb9830e72da1d87201e2a0890719a8db9
2025-05-26 18:16:35 -04:00
a48c353f6c sonar: remove deprecated parameter comment
Follow up to the https://review.jami.net/c/jami-daemon/+/31242 patch.

Change-Id: I67ebaed68644b349f4db20590f1585b91a5ff065
2025-05-26 13:35:21 -04:00
513de5a988 audio-device-monitor: validate PROPVARIANT type
This should fix a crash in the audio device monitor. Presumably,
this was caused by the audio device monitor trying to convert a
PROPVARIANT that was not the correct type.

Gitlab: #2036
Change-Id: I2fcee78075d8f99b1379245e81453240de00332e
2025-05-26 12:55:53 -04:00
f85a39d5e5 account_manager: ensure it is not null before use
Change-Id: I466e07b69d209113dd69c048eba02a947dc3b2b0
2025-05-26 12:53:26 -04:00
7afa1aa2dc sonar: remove deprecated parameter
WIP

Change-Id: I6d2ac84376062d1c67e13423a98f82bd3fa32189
2025-05-23 14:17:23 -04:00
6f81476042 askForFileChannel: avoid use-after-move
Change-Id: I0f9bb2961c08307edf13c48ac206a9e56ae46e0f
2025-05-23 13:16:43 -04:00
bb49066ff4 ConversationModule: avoid use-after-move
Change-Id: I419160880710f68b39b3b8bc8e738570ab46c8db
2025-05-23 13:14:30 -04:00
1ea753e981 sipaccountbase: getIceOptions is not noexcept
Change-Id: Icef1641f02aceca451b0ff569eeb96916b2e951e
2025-05-23 13:14:30 -04:00
450acc0ea6 ConversationRepository: avoid use-after-move
Change-Id: I9b7babc2d162bbbf96ba93a99ab4a9622146b629
2025-05-23 13:14:30 -04:00
7625709a21 autoanswer: allow to choose 2nd call behavior
Add a setting to choose if the user want 2nd calls to be hanged up
while already in one auto-answered.

Change-Id: I2149c057827ee9bf678e97ba64c31c8952aaed0c
2025-05-23 12:16:32 -04:00
1597de891c contrib: update opendht
Change-Id: Id1106c9f924d95a43517def70e74e0b57ac30720
2025-05-22 15:56:11 -04:00
8ff6bdb381 ArchiveAccountManager: handle failed connection
Change-Id: I904dda67be22221830256e42e7c173432c567450
2025-05-22 09:26:04 -04:00
6ab8a300b9 sonar-project: update configuration
Change-Id: I6bfe815c797693e2e1271c968fa6f12f369ce5d8
(cherry picked from commit 4f5fc6ad9728a583569c6a1896c0dc8264fa022a)
2025-05-16 09:05:53 -04:00
cfdc5bc271 update Dockerfiles
Change-Id: I15bd0ab6e0fd9a56a99d8de2b28a6af3b318428b
(cherry picked from commit 2207485aa9b00a0859272436d939e3652e547794)
2025-05-13 15:58:26 -04:00
80ff0174b8 jamiaccount: send messages asynchronously
Gitlab: https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1912
Change-Id: I3f5a14fec82e94c5ed48c88ac847386501875f03
2025-05-13 15:58:26 -04:00
b16c6f96d7 contacts: allow to retrieve Contact object
Change-Id: I9c095d814c4707448ecab56c494dcc683a537414
2025-05-13 11:57:29 -04:00
6cfaca58a9 data transfer: avoid deleting file if size is unknown
Change-Id: I6171f10dfe3d3587ae7a5c0f9ae1fc1ba9f2cd49
2025-05-12 09:30:08 -04:00
c231df3e05 contrib: download gmp from GNU
Change-Id: Ia4f417fbf0ee17d9e378e7dedeae6d8da8605cdc
2025-05-08 15:32:31 -04:00
cd7247c49b std::filesystem: always use non-throw version when possible
Change-Id: Ibc5410929a4f7b5e56433d883763bed5400dd2ea
2025-05-08 15:25:03 -04:00
48ae481e87 proxy list: increase cache duration
Change-Id: Icb95715e7296e2b8dc9f9ca5d2574387109a74a0
2025-05-08 15:25:03 -04:00
a14bfa333c data_transfer: improve logs for sha3sum errors
https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1998

Change-Id: I3d7c24ee350887cf688b0630d33ac073a13fe2dd
2025-05-08 14:50:00 -04:00
00b47c3965 unitTest: fix presence status note test
As of commit 68fc552, presence notes are only sent to contacts (as
opposed to all peers the user is connected to).

GitLab: #1125
Change-Id: I454c6bc880a65ad99747169cfc020a7ea7329de9
2025-05-08 14:16:23 -04:00
744b4a8af9 Android video: cleanup
Change-Id: I184be9e80501b3bbd83eaae214bb650f51d3408c
2025-05-07 16:00:37 -04:00
b364926b9a filetransfer: skip symlink deletion
During file transfer, incoming requests may see
symlinks as unresolved paths and incorrectly delete
them. This logic is removed to prevent breaking
ongoing transfers.

Change-Id: I800e7f146d5e5ea2cbf94aed38e1bc8e646747c2
2025-05-06 17:31:09 -04:00
7a51116243 data_transfer: fix file validation logic
When a file transfer channel shuts down, we need to decide what to do
with the temporary file containing the transferred data. This patch
makes two changes in that regard:

- If the size of the temporary file is equal to the expected transfer
  size, but its checksum is incorrect, then we delete it. Previously we
  only did this when the size of the temporary file was strictly larger
  than expected, but there is no reason to treat the two cases
  differently.

- The SHA-3 sum is no longer computed if the size of the temporary file
  differs from the expected size, since we know that the data is either
  incomplete or incorrect in that case.

https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1998

Change-Id: Ib5cd2e6cb38755d61d3132b7cd2e03b47e47373c
2025-05-06 16:52:49 -04:00
8f860c383b data_transfer: fix initialization of bytesProgress
The initialization of bytesProgress in onIncomingFileTransfer was
no longer correct given the change made in commit 6030be0.

https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1998

Change-Id: I508560d95ddddd26b95f3eb8ae8ae3c7649e3718
2025-05-06 16:52:49 -04:00
130a6603d6 unitTest: reduce ut_swarm_conversation runtime
The local cv variable in testSendMessage was shadowing the corresponding
member variable in SwarmConversationTest. As a result, the calls to
cv.notify_one() in the signal handlers had no effect and the calls to
cv.wait_for() in the test would block until they hit the timeout, which
significantly increased the amount of time needed to complete the test.

Change-Id: I75b6aac8801568831a17035ad86876a130efe12e
2025-05-02 10:39:07 -04:00
2cd49b2820 unitTest: fix fileTransfer
testAskToMultipleParticipants was failing because of a temporary file
that was generated by the previous test and not deleted at the end.

GitLab: #1126
Change-Id: I5a98d259ba974fe72ced94ca3ccecb611a60dc2a
2025-04-30 15:50:21 -04:00
68fc552fca jamiaccount: use MessageChannelHandler for connection status
Change-Id: Icb3d5de46b45c8097a0e6080bbb1bb3b60503dce
2025-04-30 13:01:22 -04:00
2c615dbc8a ScreenSharing: allow for custom FPS video streams
The previews of the tabs and screens during the selection is only ran
at 1 FPS to limit memory usage.

https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1242

Change-Id: I63739a1716afa82cb1c8e3961dde01d8600bae13
2025-04-29 14:22:52 -04:00
6402af906d cmake: copy files used by ut_plugins
GitLab: #1124
Change-Id: I427816d21f1f7177a305bec37fa71eef42b1755e
2025-04-25 15:37:49 -04:00
dc300e1c9c cmake: copy files used by ut_media_player
GitLab: #1124
Change-Id: Iaeac4b3cec40edb5633b2db346c3bcc167cc054a
2025-04-25 14:46:09 -04:00
8bdfb7715b cmake: add missing compile definition
The RING_ACCEL macro was not defined when compiling the unit tests with
the JAMI_VIDEO_ACCEL option enabled, which caused a heap buffer overflow
when running ut_media_decoder and resulted in the test failing in CI
with a "free(): invalid pointer" error.

GitLab: #1124
Change-Id: I333502a570224d9dd52a2b4e5e8ebe86d96e41a6
2025-04-25 14:04:12 -04:00
95832cfc9d audio: Windows: listen for device list change events
Modifies the Portaudio layer to listen for device list change
events and react accordingly.

Gitlab: #1120
Change-Id: Iba21ec5baf02fc8377923d6085e496e142ceac07
2025-04-23 16:57:13 -04:00
4662710e5a contrib: update dhtnet
Change-Id: Id2ff4b719131139925889fec7a803be7851a16eb
2025-04-23 16:36:25 -04:00
e8239bc8d2 sipvoiplink: pass peer certificate to account for id check
Change-Id: Idfeb34de40109b530a91013fdf8d737df8aaa7a0
2025-04-23 15:54:27 -04:00
eec358c1e9 iOS notification: ensure account is registered
When a notification is received, the account should be
registered, regardless of whether we need to load conversations.

Change-Id: Icb68605d0b7bbee94ce4b49ba34e9ff878c66215
2025-04-23 14:33:06 -04:00
2771304c70 conversation: fix build error on Windows
It seems that msvc doesn't support using the '+' operator to concatenate
an std::filesystem::path and a string, but that the '+=' operator works.

GitLab: #1118
Change-Id: I153b47458c5ec8c690cea9cd173c9054b115090d
2025-04-22 11:59:21 -04:00
17524a8c42 conversation: fix partial file transfer issues
GitLab: #1118
Change-Id: I4de38d343022ec2712a7e649d73fbdb1da068eb3
2025-04-22 11:03:12 -04:00
1dcd67dac0 message_engine: remove check which blocks send
When experiencing connectivity changes, a users registration
state might be ERROR_NETWORK, which would cause the message
not to send. This caused an issue with usage of jami over
a local network. If a device would disconnect from wifi/eth,
the various channels they had open with other local users
would keep alive but messages could not be sent.

Change-Id: Id3219fce31545b8102e9589b82aad32968d50f64
2025-04-21 10:51:17 -04:00