Commit Graph

16814 Commits

Author SHA1 Message Date
8b5fd05239 build: support iOS arm64 simulator
- disable vpx for arm64 simulator

https://git.jami.net/savoirfairelinux/jami-client-ios/-/issues/422
Change-Id: I5369dc6ce8e666dc03a5993a05f38d7a74556d4b
2025-03-07 14:27:53 -05:00
86d3bb6644 ArchiveAccountManager: add support for p2p account import
Gitlab: #930
Change-Id: I76f07a81c4887d0dc127d74bc6c4de2e9f4f2ee8
2025-03-06 12:19:47 -05:00
597cde8d30 contrib: fix gnutls build errors
This patch partially reverts GnuTLS commit 516f48bfbf33d111e4fcd310541baa8f160067ae, which prevents the daemon from building on some old Linux distributions due to increasing the minimum required version of autoconf from 2.64 to 2.71.

The patch also removes the AM_GNU_GETTEXT macros from the configure.ac file. When these macros are present, autoreconf calls autopoint, which overwrites some m4 files in the GnuTLS repository with the version found on the system. This causes the Ubuntu 20.04 and snap builds to fail with "possibly undefined macro" errors.

GitLab: #1111
Change-Id: I45b8225bff148b3cf01aa2ce14adc639de823a8f
2025-03-06 09:05:01 -05:00
48c2497ba5 conference: respect muted state
Ensure the video muted state is properly maintained.

Change-Id: I69d768913e141eca820abe171732d855fc1d8a78
2025-03-03 16:01:12 -05:00
ae1c47e211 conference: identify media by its label (streamId)
Use streamId as the media identifier since it is unique.

Change-Id: I68a0c8a53bdecdb22008260640fb79b6febd5b71
2025-03-03 16:01:12 -05:00
8c5c1c238f TransferChannelHandler: run on io pool
GitLab: #1110
Change-Id: I36e090fcb6c44b2483b1765786d64be108d93d21
2025-03-03 10:54:39 -05:00
8eb66bf80c update dhtnet
Change-Id: I02a995e93c23c2f602295c9c38080f196397e896
2025-02-28 13:35:11 -05:00
4fb5f8e558 contrib: bump pjproject
This upgrades the upstream version of PJPROJECT used from 2.13.1 to
2.15.1.

Change-Id: Ica6a94e7010a41839a57afc226f3c48e9e72f897
2025-02-27 16:37:47 -05:00
5e2d9e027b fileutils: improve Windows hard link file handling
Fix file access issues when reading hard links on Windows by:
- Adding explicit share mode (_SH_DENYNO) to allow reading files opened
  elsewhere
- Using binary mode to ensure consistent behavior with hard links

This resolves issues with reading hard linked files on Windows while
maintaining behavior on other platforms.

https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1899
Change-Id: I2adc0f29db46d5bf5b69762018e7a5e677ec3d04
2025-02-27 14:14:39 -05:00
d5ce21e39b jamiaccount: try hard linking first when linking to VCard
For an account's VCard, we store the actual VCard file in the account's
profile directory, alongside other contact profile files, and a link is
created in the account's directory to the VCard file that is named using
the base64-encoded account URI. This method will fail on Windows where
users can not create soft links.

When linking to this VCard file, we first try to hard link to it. If
that fails, we fall back to symlinking to it. This allows the new
profile linking mechanism to work on Windows, and we are fairly
confident that the `profiles` sub dir will not be on a different
filesystem.

https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1899
Change-Id: I3be8150b02f8427c164beb6c652f96d895aab048
2025-02-27 14:14:39 -05:00
c3f07d730d iOS: enable nat-pmp
This patch enables nat-pmp for iOS and macOS and
fixes build for iOS by removing USE_SYSCTL_NET_ROUTE,
which requires net/route.h that is not available
on iOS.

Change-Id: I7342f65a85ecbc0d7f291c981cc78ded2e741e58
2025-02-26 10:30:25 -05:00
4aff5e977c contrib: Windows: bump openssl to 3.4.0
Gitlab: #1108
Change-Id: Ib11ddad75a421816c1a954d96c051aff4ea0d6b9
2025-02-25 11:26:02 -05:00
cbba52ef01 contrib: Windows: update gmp, gnutls, nettle
- Update gmp to 6.2.1-4
- Update gnutls to 3.8.3
- Update nettle to 3.10.0

Gitlab: #1108
Change-Id: Ia7686a94eeaef7242b6570a186700f6d301ffe6c
2025-02-25 11:25:56 -05:00
bd63d69bb0 opendht: log push notification handling result
Change-Id: I6d88519a637c876848407b1e7b59e746b895c185
2025-02-21 11:23:42 -05:00
876085f886 contrib: update gnutls, nettle
Change-Id: Iab18b291176441a9fbf901e36d5bc5e1c8e341a0
2025-02-21 10:32:35 -05:00
b9e5bcaaf1 address lookup: fix when no account is provided
Change-Id: Iab22cafde6aa39a5dd970ace8de6150cc85e3bf5
2025-02-20 14:31:05 -05:00
4e29bcfc09 utils: use parseJson
Change-Id: I827de0a30a32e75e21993b435a0a68d71d846653
2025-02-20 10:36:17 -05:00
f8d2ae8405 utils: add json_utils
Add parseJson function to simplify json parsing:
* automatically log parsing failure
* allows single-line json parsing
* take a string_view instead of begin/end pointers
* optimize building the CharReader by reusing the CharReaderBuilder

Change-Id: I332a88fc476ee84ba400a96bc1b41515cca43c32
2025-02-20 10:34:42 -05:00
62ab5d057a android: enable using nat-pmp
Change-Id: I08c68d10513dc6267571d8bc466df1763191f6b8
2025-02-18 15:32:21 -05:00
8f2b6d3f5a conversation_module: update removed contact's conversation exactly once
When removing a contact, we need to update the ID of its linked
conversation (to be empty, which is the convention used to signify that
a contact doesn't have a linked conversation).

This used to be done via the updateConvForContact function, but there
were two issues (which are fixed by this patch):
1) if the user had multiple one-to-one conversations with the removed
   contact, then the function would be called multiple times (once per
   conversation) even though the update only needs to be performed once;
2) more importantly, if the contact's linked conversation ID didn't
   match any of its one-to-one conversations, then the update would not
   be performed at all. (Every contact should normally be linked to a
   valid conversation, but this can fail in practice due to
   synchronization issues.) As a result, the contact would remain linked
   to a conversation that no longer exists.

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

Change-Id: Ia75c5b27a4120bc48da5f449a874354326c6d96a
2025-02-17 16:17:38 -05:00
44edd0c53a video_mixer: cleanup
Change-Id: I480edbe0fb14f4b4758a681fb789cb30385d4982
2025-02-12 14:28:27 -05:00
leo
912aa59a44 nodejs-interface: add presence signals
Change-Id: Ifb3d176bc37c4ecbc6ce9ff682e7721d55ea7e0f
2025-02-12 12:51:42 -05:00
35ccafaccd video: remove legacy code
Removed legacy code that was causing options to be cleared unnecessarily.

Change-Id: I02b32221acc6abfef634ba843549c6391c2058c8
2025-02-11 10:30:29 -05:00
73a1e806f2 ServerAccountManager: re-schedule request deletion
GitLab: #1101
Change-Id: Ifaee9fe0a2b79716e00ccc1a12c8c78c348e80bf
2025-02-06 15:34:09 -05:00
5ac7a9eb19 gitserver: run fetch callback on thread pool
GitLab: #1104
Change-Id: I8d5c0a1fdb2f9bfc84f442e1323216ae3100da6d
2025-02-06 15:06:45 -05:00
db5a27873b conversation: remove incorrect default argument
Given the change made in commit
e048f1b999, it no longer makes sense to
use a null pointer as the default value for the optHistory argument of
the addToHistory function.

GitLab: #1102
Change-Id: Ifc5ca8b069c16d7d9cca2cbc0c8237c56895ff4e
2025-02-06 14:54:46 -05:00
4e344cb7b4 ContactList: log cleanup
Change-Id: Icd57e9a33b58c97ef9df18531510fb9590a9ee73
2025-02-06 11:24:26 -05:00
6a5d2a5bd4 AccountManager: add logs, use sha256 to check receipt
Change-Id: I68f4aab6d1588a53aaaf5757cb9dc20b8e6d8b8d
2025-02-06 11:24:26 -05:00
c614735321 namedirectory: fix tests
GitLab: #1100
Change-Id: I6ae6d125c730fc9a8a2125b9b6da68c005922bce
2025-02-05 15:30:09 -05:00
39a92daa7c namedirectory: consider error 400 as invalid
GitLab: #1100
Change-Id: I22255a2b34e5c33d1db4c1a02747874512372d5b
2025-02-05 15:28:56 -05:00
ad72c928c6 conversation: addToHistory is not const
remove artificial const signature for announce and addToHistory

Change-Id: I2edbffeaaaff4bbfa68122fa96ed23aa8859dc0b
2025-02-05 14:04:35 -05:00
e048f1b999 conversation: mutex is History
Change-Id: I178b437e99cf31c13622df136d635ff2147a04a9
2025-02-05 14:04:35 -05:00
0bd34020b4 jamiaccount: avoid syncing with server for message status
Prevents multiple requests to JAMS for every message sent.

Change-Id: I17a0e9b885730979b10c635dd99ac3d37bef69bd
2025-02-05 10:48:21 -05:00
66b320adae namedirectory: add test to CMake and fix build
Change-Id: I65c99d62848b2d18e5c54e7b8ec28219320fb363
2025-02-04 14:57:29 -05:00
c3c8a0cce2 interface-nodejs: add deviceRevocationEnded signal
Change-Id: I7cb060661c89ea4839bafd87ad5b224e5faa785e
2025-02-03 14:58:07 -05:00
cd6032756d jams-device-revocation: fix daemon not filtering non-revoked devices
Change-Id: Idaf8e45775d2b76a9b306563baa074c7484ff68c
2025-02-03 11:30:18 -05:00
d825759a1b manager.cpp: cleanup
Change-Id: Ied16cc4536b4abe4740bfa76beb6e2fb1210439e
2025-01-31 22:42:08 -05:00
9b3b9df344 namedirectory: catch parsing errors
Change-Id: Ia92378315f88051de76311d23156c1eb85c07770
2025-01-31 17:43:34 -05:00
f4993c888a AccountManager: check for certificate
Change-Id: I527d834dac6fb2f57c879d02afd09c529f95b5fe
2025-01-31 14:48:22 -05:00
40b39370a9 AccountManager: move accountId to constructor
Change-Id: I1aa416e952c2b38107c6534e104601641fabbf5f
2025-01-31 11:34:45 -05:00
2e7668600f ContactList: avoid re-saving device list n times on load
Change-Id: I8f11b6ede9701ba7770c7c774e87b6028dda117b
2025-01-31 11:28:13 -05:00
c96ea3eea7 configure.ac: cleanup
Change-Id: I553a183700ecdd3b5a8740cb962169a3037e3696
2025-01-31 11:18:07 -05:00
cbf9457ae7 name directory: allow unicode names
GitLab: #1097
Change-Id: I742d1306007b3ae4908ee2d46bd5275d1ce2c99a
2025-01-30 17:12:44 -05:00
bb47c0495a conversation-loading: fix concurrent access issue
resolved a segfault triggered by multiple clients accessing and calling clearCache simultaneously during conversation loading.

Change-Id: Ic2b134d67d1a207f45e52c5aedeee5712ead14ba
2025-01-30 13:58:52 -05:00
5c8d45c474 manager: avoid loading account twice
Change-Id: I1731d5b876bde9c0d954d36e9644988dedeca079
2025-01-29 15:10:10 -05:00
502f56b582 audiolayer.cpp: cleanup
Change-Id: Ib969e576919058468e88786adccbda9d672e7af4
2025-01-24 14:07:13 -05:00
c308dc2cf9 account: refactor unregistering logic
This patch removes the callback argument to the doUnregister function,
which wasn't really needed since it was always called right before
returning from the function.

The patch also removes all calls to the shutdownConnections function
outside of doUnregister, and instead adds a boolean argument to
doUnregister to allow the caller to specify if they want the connections
to be shut down. This is a preparatory step for fixing the bug described
in the GitLab issue linked below.

GitLab: #1095
Change-Id: Ic78659f2e00684fd1db91c0ee3cf894a53d558ce
2025-01-23 14:29:00 -05:00
70a9c0b8a8 contrib: update opendht, disable io_uring
Change-Id: I67ab26f9fe3d4afcb682e60db25c97b1f07ebb5e
2025-01-20 13:49:22 -05:00
556650c9af contrib: bump dhtnet
This should fix the following issue:
https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1898

Change-Id: I508e02b7fd1870228801dc7f773ff586f439c4ed
2025-01-17 13:12:58 -05:00
59966097d0 jams: return true when revokeDevice succeeds
Change-Id: I8b66fe04a4ed5b1aa14da99cde3b7c84d1361e2d
2025-01-16 14:44:57 -05:00