Commit Graph

15073 Commits

Author SHA1 Message Date
f0fb8148ba daemon: Use the PROGSHAREDIR macro to refer to the custom datadir.
The sources previously hard-coded the location of the default Jami
ringtone as "/usr/share/ring/ringtones/default.opus".  It should
instead be computed from the already existing PROGSHAREDIR macro,
which is built from Autoconf's configurable datadir.

* globals.mk (-DPROGSHAREDIR): Rename the 'ring' subdirectory to
'jami'.
* meson.build (conf): Likewise.
* ringtones/Makefile.am (dist_jamiringtones_DATA): s/ring/jami/g
* ringtones/meson.build: Likewise.
* src/account.cpp (DEFAULT_RINGTONE_PATH): Define in terms of
PROGSHAREDIR.
* bin/dbus/Makefile.am (libclient_dbus_la_CXXFLAGS): Remove extraneous
flags, already propagated via AM_CPPFLAGS.  Honor AM_CXXFLAGS.
* src/client/Makefile.am (libclient_la_CXXFLAGS): Remove.
* src/plugin/Makefile.am (libplugin_la_CXXFLAGS): Likewise.

Change-Id: Icaa0a92e896f86b0bb07f82e4079570db08fafbd
2021-06-28 10:52:29 -04:00
11a85bde08 dring: Rename to jamid. Likewise for ringcli.
This change renames the dring binary to jamid on GNU/Linux, and from
ringcli to jamid on the other Windows/Mac platforms.

* .gitignore: Ignore bin/jamid instead of bin/dring.
* bin/Makefile.am (bin_PROGRAMS)[HAVE_WIN32]: Replace ringcli by
jamid.
(ringcli_SOURCES)[HAVE_WIN32]: Rename to jamid_SOURCES.
(ringcli_CXXFLAGS)[HAVE_WIN32]: Rename to jamid_CXXFLAGS.
(ringcli_LDADD)[HAVE_WIN32]: Rename to jamid_LDADD.
[HAVE_OXS]: Likewise for each of the above 4 variables.
(bin_PROGRAMS): Replace dring by jamid.
(dring_SOURCES, dring_CXXFLAGS, dring_LDADD): Replace the 'dring'
Automake variables prefix by 'jamid'.
* bin/dbus/cx.ring.Ring.service.in (Exec)<dring>: Rename to 'jamid'.

Change-Id: I3f41846a38e74e2f3c6f687a46e1a208f0083ca2
2021-06-28 10:52:29 -04:00
7d75409910 test: listen for announced not registered
Change-Id: I64cdedb5f3a5131cab4ae85b8eaf3dd46102952e
2021-06-28 10:27:06 -04:00
f9a34f99c8 data_transfer: channel can live longer than IncomingFile
Change-Id: Ifbc66d0197949f82826bd743b3a015ae5b540e6f
2021-06-28 10:15:11 -04:00
062111c7c6 jamiaccount: avoid use after move
Change-Id: Ie72b4c03bfe5d948a0aa8e48ae8a5d99f1650f42
2021-06-28 10:15:07 -04:00
f58ba79a4d fuzzing/supervisor: Add supervisor
Change-Id: Ie593e1a6496d47fa8bb1fa3b046a01f87a44377b
2021-06-25 11:51:27 -04:00
17d89dfd8b fuzzing/utils: Add utilities taken from UT
Change-Id: I53c9da27babcbb1c1f678ddf7b885a322d3a4d96
2021-06-25 11:51:27 -04:00
e5623694cf fuzzing: Add actors and dring-sample
Change-Id: Ia946d08f370143ff2e7d9ece379ad63a8207a4b3
2021-06-25 11:51:27 -04:00
91adbe56f2 fuzzing/common: Common definitions
Change-Id: I5a3718b9c19800bd6615b52a050f6f443394136e
2021-06-25 11:51:27 -04:00
c9757b595d auto-tools: Add fuzzing directory
Change-Id: I189cdf06e74314f6e35b34addafe599d39f2dc42
2021-06-25 11:51:20 -04:00
b3a1f4263f multiplexed_socket: protect buffer before moving
Change-Id: Ibb9d0b2d0ab638de914d31c500e41224cf293f1e
2021-06-25 09:52:02 -04:00
5fb5de1a91 conference: fix audio only participant
with lasts ms patches, audio only participants dummy video was not being attached to conference mixer, causing participant to not show

Change-Id: I4621562e901aec7dfed6c6ae4a543724f9ccb0d3
GitLab: #565
2021-06-23 14:47:02 -04:00
93a34c9ab4 notify_one: cleanup
Change-Id: I26433e1463ecb261fb586431b6c43a3e6b931dcf
2021-06-23 10:27:32 -04:00
e5d95eb6d4 test: fix testMemberJoinsNoBadFile by waiting for join before copying
Change-Id: I4e34411c6e362c2aca31337224b077f7674d73da
2021-06-22 16:28:11 -04:00
2afa99fd12 daemon: Install dring to libexec and edit templates at install time.
Executables are typically installed under bin/, sbin/ or libexec,
rather than lib/.  The problem was noticed when trying to use Jami
with a Guix relocatable pack, which only wraps executables found under
the above locations.  Since dring is a daemon and should not be run
directly by users under normal circumstances, the convention is to use
the libexec directory, according to the File Hierchy Standard 3.0.

Also tackled in this change is the substitution of the Autoconf
variables at installation time rather than configuration time, as per
the GNU Coding Standards.  The following solution is taken from
https://github.com/gentoo/eudev/pull/183/commits, which in turn is
adapted from the Autoconf manual (c.f.: info "(autoconf)Installation
Directory Variables").

* bin/Makefile.am (ringlibdir): Delete variable.
* bin/dbus/Makefile.am (do_subst): New variable.
(cx.ring.Ring.service): Derive from the cx.ring.Ring.service.in
template.
[HAVE_WIN32]: (ringlib_PROGRAMS): Rename to ...
(bin_PROGRAMS): ... this.
[HAVE_OSX, RING_DBUS]: Likewise.
* bin/dbus/cx.ring.Ring.service.in (Exec): Adust.
* globals.mk (ringlibdir): Delete variable.
* configure.ac [with_dbus] <AC_CONFIG_FILES>: Remove
bin/dbus/cx.ring.Ring.service.  Also remove the LIBDIR variable, no
longer used.  Fix indentation.

Thanks to Vladimir Stoiakin for providing feedback on this change.

Change-Id: I845bf2bd590a9457e70ca173027217b8f164d713
2021-06-22 15:32:29 -04:00
4bb6741ee3 datatransfer: save directly to conversation_data if no path is set
Incoming transfers should be preserved in the conversation's data
directory by default. This will prevent broken pending file
transfers and chat UI when the user cleans their download folders.
Subsequent commits to the project should provide a mechanism for
users to download(copy) transfers to their chosen download path.

Change-Id: Ide109fadb950ce7ab096c052c0a54ad4d215a9a1
2021-06-22 13:02:24 -04:00
dd36baa517 fileutils: remove symlink creation on windows
Requires developer mode at best on windows 10

Change-Id: I0861c3f87c51f0de9de3f3860b371ced0d5ccb2d
2021-06-22 12:54:30 -04:00
eaeb865a33 ut_syncHistory: fix testCreateConversationWithMessagesThenAddDevice
sendMessage is async, causing messages to be mixed before the assert

Change-Id: Ia08855a6a1516db2ee5acf01c166055831be80eb
2021-06-22 12:20:25 -04:00
d8545316f8 jamiaccount: check if conversation is valid before getting infos
Also check repo pointer in conversationRepository. If the conversation
is not correctly cloned (can be caused by a lot of things during the clone),
the infos will be invalid, so avoid to crash in this case.

Change-Id: I42a15200a06ca700bac972deea4cfc07ae87cae8
GitLab: #568
2021-06-22 09:59:22 -04:00
8ecbfcbe31 jamiaccount: check sip_tr before using it
If the ICE is closed during the cacheSIPConnection, the sip transport
will not be found causing a potential crash

Change-Id: Ic2e7ab9272a2eb3274256151e37c2acd208cb0dd
GitLab: #569
2021-06-22 09:43:49 -04:00
aca5de93b0 conversations: prevent segfault when git repo can't be opened
Change-Id: Iff94a21f26fd1518e1d7287e511c41176ea8eea9
2021-06-17 17:34:29 -04:00
d769d33840 ice: fix logging of ICE components
Change-Id: I610ae85bb3b779457a9ce64161e3b8b19ca820df
Gitlab: #516
2021-06-17 13:20:52 -04:00
3ed5f067e7 sip/sdp: fix media direction in hold/resume
Media direction attribute in the SDP should be set to "sendonly"
when the call is put on-hold.

Gitlab: #553

Change-Id: Iad82bf1fcac703bd275e857f28d1a4aa7323cc0d
2021-06-17 09:21:44 -04:00
64c77aeb35 jni: add hangupParticipant
Change-Id: I829ca79f3786d400c1cf9937affcd713ea48e05e
2021-06-16 18:44:55 -04:00
67af5b1394 logger: removed windows-specific monitoring
Change-Id: I3c0202705488c84cade375b79a9d47669c2dcd20
2021-06-16 11:18:26 -04:00
9a7dc45818 multiplexed_socket: Catch msgpack::type_error
Catching a generic exception could hide problems deeper in the call stack.

Found-by: fuzz-msgpack

Change-Id: I93e1f92aca6e3cff259d52cdedfd83996994b721
2021-06-16 10:35:27 -04:00
35d4ffc9c1 autotools: fix dependency declaration
Change-Id: Ib1eb25f11fccd51424012bb11d5e8586fcc8e575
2021-06-15 14:34:34 -04:00
cb5b3bd29d jamiaccount: do not crash on a failing mode()
Change-Id: I69bf2a2b2a8c7fed6d38c1b85ab9d8069442b4d1
2021-06-14 19:53:11 -04:00
d6278283f8 swarm: improve syncing and fix sync after import
Because no more devices can exists after an import, the swarm MUST be able to
sync from known conversation's members.

Change-Id: Ic22ec813b303815ce62b45fea6ab317ab3ba3147
2021-06-14 19:53:10 -04:00
fabfd06e73 conversationrepository: fix signal emission
Change-Id: Icb8b13668a749c27125f0377299cf96a51170132
2021-06-14 16:31:12 -04:00
8044cab4f7 unitTest: fix fileTransfer, syncHistory
Change-Id: I087ee6e3e0e8f1530272a28f6f940571d542ebc4
2021-06-14 15:45:41 -04:00
348ade9e2a multistream: fix compil and logic (ut_call, ut_conference, ut_media_negotiation)
Change-Id: Ia7ed4438ccd466ec0bab60b5a85d9b67f721d0d8
2021-06-11 16:35:06 -04:00
8a753f0463 swarm: only request a connection when peer is detected if a sync is needed
fetched check the devices who has fetched since the last commit. With this file
we can detect if a device needs to fetch and if it's the case we start a connection.
cacheSipConnection will sync the conversations when called. This avoids the
daemon to connect too all contacts

Change-Id: Id85db09c3c0a6aa44dd48b3bbee5ed7e0a5d6b84
2021-06-11 15:26:01 -04:00
a21f1d8ce9 tls_session: stop handshake on interrupted due to a shutdown
Change-Id: I4deaafb9b8c6f3df675049c7c3a95f7924983503
2021-06-11 15:26:01 -04:00
f48e9693e4 datatransfer: fix jni
Change-Id: I505a82849bcd3f33fe772f75b58e50507601c920
2021-06-11 15:26:01 -04:00
638fb15ab9 jamiaccount: retrigger onPeerOnline on main thread
this avoid to lock configurationMtx in a dht thread (this will block the
shutdown).

Change-Id: Ie04a7a34ccd85a3c05214a373a7b7cca4350ad7b
2021-06-11 15:26:01 -04:00
7ca65af186 swarm: send conversationId in trust request confirm to enable swarm
Change-Id: I20add73ed92aece44687bf133914883547dd2f32
2021-06-11 15:26:00 -04:00
f9d8363d5a jamiaccount: sync, use msgpack instead of big json and add DeviceSync
Change-Id: Ib242760919521113c4d76beb14b37311bfba17d4
2021-06-11 15:26:00 -04:00
0f49be34ff jamiaccount: compat: be able to add a contact if the trust request is not found
Change-Id: Ic336fd64f666debf3e1183fb705af65f82a4bdb7
2021-06-11 15:26:00 -04:00
14f286bab8 datatransfer: implement downloadFile logic
Add mechanism to re-ask for transfers and sendProfile
with new logic

GitLab: #524
Change-Id: I9f10328ff0e2bd9128e2d7d1afd7fa272dd14cdf
2021-06-11 15:26:00 -04:00
a5d3fc936e jamiaccount: re-enable sync
Change-Id: I142e017e290c643a73f2b2b422533ec8d7cc0483
2021-06-11 15:26:00 -04:00
612f7f6b41 data-transfer: re-ask for transfer
add API to ask for a failed transfer. This can be used when the
client detects a transfer they doesn't have yet. It will ask all
members of the conversation to send the transfer back.

GitLab: #136
Change-Id: I1484298c4fa0eabb614132e22d8032612e14b949
2021-06-11 15:26:00 -04:00
e6bd5d7383 swarm: fallback to old conversation even if trust request confirm is missed
Sometimes a non swarm can send a text message via the DHT but not the trust
request confirm. In this case, the discussion must use the old path.

Change-Id: Id0d5223c830abe0840bef167b4be50abc276a72c
2021-06-11 15:26:00 -04:00
59ece88f9a contact_list: link conversationId to contact
Change-Id: Ib8fcbbb95a4df84e297ad468b8b4b239a172a153
2021-06-11 15:26:00 -04:00
2438254a51 plugins: attach swarm and Plugins System
Change-Id: I136f5ba49f14a379ec6dce37fbd837e38d90f549
2021-06-11 15:26:00 -04:00
d475a227fb swarm: clean APIs
Pass all methods in async and on the io pool if they write into
the repository. Moreover, now MessageReceived guarantees to be
ordered if announced. e.g. if a parrallel merge and commit are done
previously if the merge was done before the commit you could receives
MessageReceived(merge) after MessageReceived(commit). Now it's
impossible. So the linearizedParent is guaranteed to be announced
before.

Change-Id: If4b94f19f5bf5abd4841fc19074231e3411e077d
2021-06-11 15:26:00 -04:00
c216e3e8fa swarm: remove conversation for non-compatible contacts
If a TrustRequest is confirmed without conversationId this means
that the contact don't support swarm. So, we can drop the
conversation and fallback on old path.

Change-Id: Ic8238312fe79e10f340460d20880dbfc8dccf3f7
2021-06-11 15:26:00 -04:00
030983a5f5 swarm: relink filetransfer
Change-Id: Ia80930bdec6b5e125fd559fcd6b125a45b4eba0c
2021-06-11 15:26:00 -04:00
427e6b3ab3 swarm: relink setMessageDisplayed
Change-Id: Ic1e002a1e8edf79c5c392e707dd857c7e88667ec
GitLab: #319
2021-06-11 15:26:00 -04:00
a1b04c7213 swarm: relink setIsComposing for swarm support
GitLab: #320
Change-Id: I82b049cfa83f1e3e38a106bce142c1e7ce31557c
2021-06-11 15:26:00 -04:00