Commit Graph

788 Commits

Author SHA1 Message Date
35d201ee26 contrib: update asio
Change-Id: I2cc327e11c80eeae7ca07bd1e1ab33fc357d527f
2022-06-16 15:07:07 -04:00
c0d9e6057c contrib: fix dbus build with g++12
Change-Id: I52d4fee70c9fdcc38c964301d56f89fa23188e9a
GitLab: #734
2022-06-16 10:01:12 -04:00
57a6344727 contrib: Add liburcu 0.13.1
Change-Id: I26379859f39b05a8cd2a8c4b05d6173cea145481
2022-05-20 11:15:12 -04:00
2b2899d7b8 contrib: Add lttng-ust 2.13.0
Change-Id: Ie6d9c48758adbee7c81bf31c3e11ada2428c2e8d
2022-05-20 11:15:12 -04:00
95ec084263 pjproject: fix crash if all ipv6 addresses are deprecated
cleanup old TODO file

Change-Id: I76a91664f9e40cc866ae2527758815f11d312d69
GitLab: #733
2022-05-20 05:05:00 -04:00
222934d9ee contrib: update opendht
Change-Id: I47603f564cfa57ae63f758534231b1755b4f1286
2022-04-26 13:38:04 -04:00
dca2eaaa4b contrib: bump opendht to 2.4.0
GitLab: #717
Change-Id: I89009c3d4402b8d04af3586c0360b9bf549b7a11
2022-03-23 15:48:20 -04:00
5a83c7a260 build: update opendht
Change-Id: Ia26c97dbe487509d3e346d7c95675bd984d2ab77
2022-03-04 12:31:16 -05:00
6e83fc2a45 build: update libarchive path
Change-Id: I3a54032a774b8edb2b8d51ae1115fa84a0487ac7
2022-02-14 16:46:53 -05:00
7634487e9f libressl: update hash
The hash changed because the libressl team updated their tool,
changing the copyright in the tarball

Change-Id: I0fcf3d65d5058a5fdfdc161aa427758ca20e9a2f
2022-02-09 15:52:29 -05:00
d1bc939090 jamiaccount: add test for migrations
Accounts can see their certificates expire. When it's the case, a
migration is needed. However, several regressions can happen, because
this behaviour can be tricky to test correctly. In this patch, a
test is added to validate that the migration is done whenever the
certificate expires.

+ OpenDHT needs to be bumped in order to be able to change the validity
period of a certificate.
+ In ArchiveAccountManager, a method is added to change the validity
of a certificate in the chain.
+ This patch also fixes a crash when a migration occurs directly on
the archive (info_ was null causing a segfault).
+ Finally, cleanup some signatures unused in JamiAccount.

GitLab: #684 (this is some preparative work)
Change-Id: I901bc67fd63ce2ab26ded64662f8333d3a0eed50
2022-01-26 15:18:07 -05:00
7c73d69c7e fmt: uses 6.0 as th minimal version
fmt from the system on Fedora is not working properly

Change-Id: Ic28a976e110fc168faa3b985cc0852a31ec34114
2022-01-10 10:30:31 -05:00
ff37ad28cc dbuscpp: uncomment check for version
Change-Id: I82bde67fed7a295e888c2ea8f96c6e4646f51e64
2021-12-08 16:19:57 -05:00
9c74ea2cbb contrib: fix build without flock
Change-Id: I274ed5b9b6f97b06e7a355b941f81f86c7816c24
2021-12-07 10:31:58 -05:00
0264efe968 ffmpeg: enable mkv support
This fix ut_media_encoder
Also avoid crash when outputCtx_ is nullptr and the format is unrecognised.

Change-Id: I6df5a2e229e0313ea2b3c34b37f9f2900058c75f
2021-12-03 10:43:23 -05:00
cc8fb02462 x11: window sharing
+ If in screen sharing, the hardware acceleration encoding is disabled

GitLab: https://git.jami.net/savoirfairelinux/jami-project/-/issues/1294

Change-Id: I24982b4454d724bb86059a50a3c2d01fe6fab147
2021-11-30 12:08:50 -05:00
ac2df2d6f4 contrib: update asio to 1.19.2
Change-Id: I4f892022de8ae0ddc70c08c6b9849aeb62aa7b58
2021-11-16 13:22:25 -05:00
65263b21d5 contrib: update libressl to 3.4.0
Change-Id: Ie5d96f1883759bc8a5951d13541b2e3b541b1a95
2021-11-16 13:22:25 -05:00
24bf24edae ICE/PJNATH - rework TCP connection retry
Introduce 2  main changes to the TCP patch:
- limit the number of connection retries.
- use a higher Ta for TCP connection retry (500 ms)

Gitlab: #634

Change-Id: I2281addf072c6f0e9ff2fc0457e08a590af1e178
2021-11-01 15:08:41 -04:00
4a35478da4 pjproject: use our own repository
Change-Id: Ifb28f17a705a9c46185c96ff8c23d3283128a0bc
2021-10-28 16:53:46 -04:00
77a2d0c048 contrib: bump opendht
https://git.jami.net/savoirfairelinux/jami-client-ios/-/issues/150

Change-Id: I4f6d1b5e8db5be8e1c31b1bb7534080a13766edc
2021-10-28 11:07:05 -04:00
ec0e947777 webrtc-audio-processing: allow using system version
Change-Id: Ie12b5962f37f4e35aa3d2f71031bce605b24551a
2021-09-30 13:22:42 -04:00
6d4630bfc2 ICE: flush timer heap when destroying ICE instance
When requesting destruction of ice session and stream
transport instances from PJNATH, some operation will be
done asynchronously through scheduled timers. If not
properly handled, the timer heap will still contain
timer entries when the timer heap and the IO queueu are
destroyed.
Now, the timer heap is given more time to flush the
remaining timer entries before the IO queue and the
timer heap are destructed.
The timer heap may still contain timer entries if
PJNATH does not process all the timers within the
givent max time (currently set to 3s).

Gitlab: #637

Change-Id: I5ef2fe9d824e8b57191a51fac8f9e53e0e626fcd
2021-09-28 20:53:37 -04:00
07804eb312 contrib: More thoroughly fix the Autoconf GTKDOCIZE issue.
* contrib/src/main.mak (GTKDOCIZE): Set and export variable to true.

Change-Id: I1901bdac034aa1e9b837f628f942f09b14160b52
2021-09-24 11:10:23 -04:00
ba7f20f957 ICE/PJNATH: fix crashes and assertion failures
This patch introduces many changes that prevent various crashes
and assertion failures.

In PJNATH source code:
 - Avoid duplication when adding host candidates.
 - Prtoect ICE context (lock) in TCP callbacks
 - Correctly set local and remote addres in STUN request

In jami source code:
 - Check that the address is valid before using PJSIP
 helpers

Gitlab: #617

Change-Id: I317d748db8d1f93dda6d5f510a2fae909a04704c
2021-09-23 14:45:55 -04:00
c2b167da61 contrib: update opendht to 2.3.1
Change-Id: I750ee4f9b1f174d0f6aacab77293506c633a00f4
2021-09-15 16:46:49 -04:00
1d4dc978cb contrib: Make flock optional.
* contrib/src/main.mak (TARBALLS_DEFAULT): New variable.
(TARBALLS): Define in terms of the above.
(FLOCK, FLOCK_PREFIX): New variables.
(download): Use $(FLOCK_PREFIX), which may be empty when flock is not
available and a default TARBALLS location is used.

Change-Id: I95ca0ec0cdd893fc50f3924619cc87fe8cd6a5b7
2021-09-15 14:42:37 -04:00
5fd4d2e050 Revert "ice: resort the check list when adding prflx candidates"
This reverts commit 5e45336840.

Reason for revert: Cause crash due to re-ordering the checklist while some checks are in progress

The resort of is causing inconstitency between the checks. The current uses
the list index as the ID for the STUN request. When the STUN response
(for this request) is received, the ID is used as is to retrieve the
check in the check list.
If the list is re-ordered (when receiving an new incoming check), before
the STUN response is received and processed, the ID of STUN request will
point to a different check on reception of the STUN response.

This a temporary revert until a more robust solution to the ordering
issue is found.

Change-Id: I912a9861118461ff7f6296f61c53531fa2b9384e
2021-09-14 14:04:26 -04:00
e9caa15054 ice: fix issue in nomination of triggered checks
There is an issue with the nomination of triggered checks in ICE
that causes ICE negotiation to conclude on sub-optimal pairs.
The issue was reported, and acknolegded by PJSIP maintainers.
This patch will fix the issue.

Gitlab: #622

Change-Id: I4bed7191692051d6215fbde8ee2ca9f94b76e0f9
2021-09-03 15:33:41 -04:00
e26f939936 ice/pjnath: use higher Ta interval
Use a higher Ta value (50ms instead of 20ms) as
recommended by newer ICE spec (RFC-8445).
This will reduce bandwith usage (peaks) needed for the connectivity
checks as described in RFC-8445.

Gitlab: #605

Change-Id: I6a228a47d5f6cf574003d1354c4410294aedf95a
2021-09-03 14:48:56 -04:00
5e45336840 ice: resort the check list when adding prflx candidates
fixes commit b954f3b53b

Gitlab: #617

Change-Id: I82b6f9f229b173279bfcd3c200b73690d752b670
2021-09-01 15:36:03 -04:00
b954f3b53b ice: resort the check list when adding prflx candidates
Resort the check list  when new prflx candidates are discovered,
to avoid the nomination of candidates pairs with less priority.

Gitlab: #617

Change-Id: I93559facd8b6ce99708ccf1311925837d9cd119d
2021-08-26 14:51:09 -04:00
d78ca5944b misc: add the missing comma in pjproject package.json
Change-Id: I0b05cf38d6a01711c994b124d002795bcd9d6a96
2021-08-25 10:26:17 -04:00
98925c0dd7 contrib/pjproject: Fix invalid owner of mutex
Change-Id: I3840037c7710a6a4874ea03af49b139e314dcd95
2021-08-25 08:38:57 -04:00
0a88718c43 contrib/pjproject: Fix offset by 1 error
Variables `stun_sock->*_nb` are initialized to -1 and incremented by 1 for each
new socket.  Thus, the `<=` comparison operator should be used for iteration
instead of `<`.

Gitlab: #613
Change-Id: I3c6971f533ead466b25381f3d4edbc4dc1827950
2021-08-23 14:32:17 -04:00
bd54b33302 contrib(win32): get portaudio from github instead of portaudio.com
Change-Id: Ia8ea4818d7966c80be32e44a26d7d84fc4ba008e
2021-08-23 13:39:16 -04:00
15174309b8 contrib: main.mak: Guard downloads with flock.
This is to prevent resource contention on shared file systems such as
NFS.

* contrib/src/main.mak (download) <wget>: Guard with flock.
<curl>: Likewise.
<fetch> Likewise, and properly quote shell arguments.
(download_git): Likewise.

Change-Id: I8e2139d780a34ad054cfa8e188c6cbaf94df0609
2021-08-19 11:28:26 -04:00
f13474e4ac contrib/pjproject: Add auto registration of thread patch
Change-Id: I42ee23f29b21174c71113e41223b084be919309f
2021-08-18 11:19:23 -04:00
5fd6939131 pjproject: add socktype and duplicate checking fix patch
https://github.com/pjsip/pjproject/issues/2787
https://github.com/pjsip/pjproject/pull/2788

Change-Id: I3c20c11a2a6f726dda6789fab2f12df2fcb23463
2021-08-06 15:39:02 -04:00
b692a6d7f4 msgpack; fix build on ubuntu 20.04
ubuntu 20.04 uses msgpack 3.0.1-3, however daemon doesn't seems
to build (msgpack_pack not found). This fix the build for ubuntu 20.04

Change-Id: I84d50b94b2e7b40d9cd8a599dd5d7da8c2ac4194
2021-07-30 14:10:22 -04:00
3e73e26416 pjproject: fix regression caused by bump to 2.11
rfc6544 rebase introduced an error where no_pending_check was
wrong causing the on_ice_complete to never be called if all
candidates failed.

GitLab: #597
Change-Id: Idca5f9bb2b03d9ae4687cef64df96cef6509b15d
2021-07-30 14:06:30 -04:00
95280b19b8 JamiAccount: use full public key or sha256 for DeviceId instead of sha1
Change-Id: I5e135b9ef4365acf87e6de4a8b1af9d19ef34ca3
2021-07-28 16:21:57 -04:00
a137120903 contrib/pjproject: Fix another socket leak
Change-Id: I8c834ea5abefc1f61996ab5098f1d7caf74e36dc
2021-07-26 15:36:18 -04:00
97964808a7 contrib: use shared libc++
Change-Id: I512c6a5f2fe905d0857a5f22488cf01596a983b5
2021-07-26 12:08:35 -04:00
a6ce32567a contrib: Add Guile 3.0.7
Change-Id: I5340a0215512be416a618c526f8a0962c8401087
2021-07-23 09:39:23 -04:00
c088e521b4 contrib/pjproject: Add patch that fixes TURN socket leak
Gitlab: #590

Change-Id: Ia2f030e475eb269a7f9ccb7540fd1fc0c80f5a5b
2021-07-23 09:38:35 -04:00
d938694f5b pjproject: bump to 2.11
Note:

Merged upstream (so deleted):
0010-fix-pkgconfig.patch
0014-Add-new-compile-time-setting-PJ_ICE_ST_USE_TURN_PERM.patch
0015-update-local-preference-for-peer-reflexive-candidate.patch
0016-use-addrinfo-instead-CFHOST.patch
0017-CVE-2020-15260.patch
0018-CVE-2021-21375.patch

Merged for 2.12:
0019-ignore-down-interfaces.patch
0020-ignore-addresses-for-RFC7335.patch

Also, fix the assertion in ice_transport.cpp cause
user_mapping_cnt can be equals to PJ_ICE_MAX_COMP.

Change-Id: If6fee261e89c34640519a6b61e94391b57363a22
GitLab: #509
2021-07-23 09:38:35 -04:00
16ee52e3f8 jamiaccount: set registration state in doUnregister
Change-Id: I9683e6eb8e3191c56a9fdb41c1e426e749f0349c
2021-06-01 11:34:10 -04:00
7033794d97 apple: avoid SO_REUSEADDR for upnp
This cause a huge battery drain. Issue reported upstream there:
https://github.com/pupnp/pupnp/issues/328

Change-Id: I739aa6e3929297f2e09b4d37849106ca03c2635e
GitLab: #563
2021-05-31 14:12:58 -04:00
0cba786b6f pjproject: ignore 192.0.0.0/29
From https://datatracker.ietf.org/doc/html/rfc7335#section-4
 " As defined in [RFC6333], this subnet
   is only present between the B4 and the Address Family Transition
   Router (AFTR) and never emits packets from this prefix "on the wire".
   464XLAT has the same need for a non-routed IPv4 prefix, and this same
   need may be common for other similar solutions"

Meaning that this candidate can be ignored. This is the second part of:

GitLab: #539
Change-Id: I52a906bc4ae5a1b1062cf6fe21dec216329c1d14
2021-05-31 14:12:47 -04:00