- Feb 19, 2022
-
-
/invited was not checked for kicking member, add this directory and cleanup the function for resolving votes too. Documentation is updated: https://git.jami.net/savoirfairelinux/jami-project/-/wikis/technical/\ 2.3.-Swarm#remove-a-device-from-a-conversation jami-client-qt#340 Change-Id: I18882066e3e42ced8ed656da3b1d2ed0a19929cf
-
- Feb 18, 2022
-
-
Kateryna Kostiuk authored
This patch fix video device detection. Before device event listeners would not start if a video device list is empty. Change-Id: I5b320c1ae47b945d6f570e3cd2afcd6bd01dfdae
-
- Feb 15, 2022
-
-
Sébastien Blin authored
In some cases, a user in the swarm can update its certificates. However, the new certificate MUST be checked and MUST be signed by the account. So, this patch validates two scenarios: + Check that a fetch error is sent to the client whenever an invalid certificate is detected in the original clone + Check that a fetch error is sent to the client whenever a certificate is replaced during the conversation. Change-Id: Ieb15fb6444dcf4541f00c511a9f4ba0c64617130
-
Sébastien Blin authored
If a device expires, a migration will regenerate the device's certificate. In this case, the device certificate in swarms must be updated. So, the idea of this patch is to verify that the current certificate in the repository for this device is still correct. If the device or the member got invalidated, it tries to replace the current certificate (updated via the migration). So that the new commits will still be valid. Change-Id: I75b19b0edbb5601a758a73a4c4a44678d77295e1 GitLab: #684
-
- Feb 14, 2022
-
-
maxime callet authored
Change-Id: I3a54032a774b8edb2b8d51ae1115fa84a0487ac7
-
- Feb 11, 2022
-
-
jami-client-qt#671 Change-Id: If0f2237042c746214cadb33ef8e56c22fe327a37
-
- Feb 09, 2022
-
-
The hash changed because the libressl team updated their tool, changing the copyright in the tarball Change-Id: I0fcf3d65d5058a5fdfdc161aa427758ca20e9a2f
-
- Feb 07, 2022
-
-
Sébastien Blin authored
On older versions, removeConversation didn't update appdata/contacts causing some removed conversations to be announced in contacts details. On Android, this hide the contact from the smartlist, as it's waiting for a removed conversation. Change-Id: I05be12ffcd2e5fe38d84c6f972b97e082c612ac7 GitLab: #714
-
- Feb 04, 2022
-
-
Sébastien Blin authored
When a device is expired, the migration will update the certificate chain with the previous key. So, after a migration, the device's id must be unchanged. However, if a device is revoked, this should trigger a re-generation of the device with a new PrivateKey (so generates a new device). Add related unit tests. GitLab: #684 (this is some preparative work) Change-Id: I7ff0cff97b7285186539cfadc6e33b620ded5b27
-
- Feb 02, 2022
-
-
Sébastien Blin authored
+ testSetMessageDisplayed and testSetMessageDisplayedPreference were broken because the lastDisplayed behaviour was recently changed to support syncing across devices. Update the two related tests. Also, avoid to update the lastDisplayed on merge + testSyncWithoutPinnedCert was badly written causing some sporadic failures. Change-Id: I364818b4ececb0fa63e87441f55a7da76fe1feb6
-
Sébastien Blin authored
Since the video split, the daemon can manages a lot of Sink clients which are generally not used by any client. This introduces a lot of wasted computation. One of the problems is that every sink client have a SHM memory if dbus is enabled and any update generates frames for this SHM memory even if the client is not showing them. This patch introduces VideoManager::startShmSink, which enable or disable transfer and works like VideoManager::registerSinkTarget. Thus, a transfer will only be done if the client is explicitly asking to transfer frames. Change-Id: I1d265b7ffcdc37aff9c5f729a146fa26c5d7d4a1 GitLab: https://git.jami.net/savoirfairelinux/jami-product-backlog/-/issues/9
-
- Jan 28, 2022
-
-
Olivier Dion authored
Gitlab: #687 Change-Id: Ib21093ab520165f02631aab483c1a86efc31aae7
-
Olivier Dion authored
Small helpers for signal handling. `with-signal-handler` is useful for scoping signal handler and `with-signal-handler-sync` for signal synchronization. Change-Id: Idc7696fb273003d526f3a4658e7fb5623c2c5827
-
Sébastien Blin authored
Because swarm is a synched history compatible with multi-devices, if a message from the swarm is read on one device it should be synchronized with other devices as much as possible. The idea of this patch is to add lastDisplayed sent in synched datas to allow clients to update the read status. However, there is several scenarios to take into account, because the history can be partially synched across devices. 5 scenarios are supported: + if the last displayed sent by other devices is the same as the current one, there is nothing to do. + if there is no last displayed for the current device, the remote displayed message is used. + if the remote last displayed is not present in the repo, it means that the commit will be fetched later, so cache the result + if the remote is already fetched, we check that the local last displayed is before in the history to replace it + Finally if a message is announced from the same author, it means that we need to update the last displayed. If the last displayed message is updated, AccountMessageStatusChanged is triggered for the client. Doc: https://git.jami.net/savoirfairelinux/jami-project/-/wikis/technical/2.3.%20Swarm Change-Id: Iedd29129d72cbeb43499471bdfd492dd4d49dcb6
-
- Jan 26, 2022
-
-
Sébastien Blin authored
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
-
- Jan 25, 2022
-
-
Sébastien Blin authored
The method was bugguy, because the whole point here is to check if the conversation contains enough informations at this point to validate the user, not to compare with pinned certificate. Moreover, a user can sync the history from another device, without ever connecting to the original author, so the certificateStore will not have the device certificate in this case, so only uses from the repository. A test is added to reflect this. Change-Id: I3af5e7769174eedcb54e17181d4530593960c9c9
-
When muting/un-muting the video, a re-invite is performed leading to a full media renegotiation and restart, including ICE session if used. With these changes, the mute/unmute video will still require a re-invite (a new SDP to indicate the new media directions), but the ICE session is re-used and only the video is stopped/started accordingly. The behavior improves the UX by avoiding unnecessary audio disruptions and is more compliant with SIP/ICE specs (see RFC-5245 section 9.1.1.1 for example) Gitlab: #671 Change-Id: I13caf9a965af1d76e922fe5f6b86d5332b3296d6
-
- Jan 24, 2022
-
-
Sébastien Blin authored
Major part seems from SFLPhone Change-Id: Icc557d84acf96b35520a03e998b710fb553c93b1
-
Sébastien Blin authored
Unsed by all the clients, since years. Change-Id: I47654d25a04b9574ddac8a717adec25ba3efaa90
-
Sébastien Blin authored
Because multiple threads can access the TrustStore to update/add/rm certificates, introduce a mutex to protect the maps. Because a lot of methods only access the maps in read-only, the mutex is mutable. Moreover, because isAllowed will check the whole chain, to avoid multiple lock/unlocks, the mutex is a recursive one. Change-Id: Iec197221e2eefba4a7192f36f1a9a952f2533778 GitLab: #690
-
- Jan 21, 2022
-
-
Mohamed Chibani authored
In conference and auto-answer mode, if the remote peer requests a media change, the remote media was used to configure the local media. This is bad, since if the remote muted its audio, it will also mute the local audio. Now, the existing media will not be modified, and the new media will be automatically added if any. Gitlab: #688 Change-Id: Id5388ed916eaa5755202b4b5b5fad118f0dc9c1e
-
- Jan 20, 2022
-
-
This name matches a common naming convention in build systems. * compat/msvc/config.h (PROGSHAREDIR): Rename to... (JAMI_DATADIR) ... this. * globals.mk (-DJAMI_DATADIR): Likewise. * meson.build (conf): Likewise. * src/account.cpp: Likewise. * src/manager.cpp (Manager::playRingtone): Likewise. Change-Id: I123251f3e420948bc7359ce0a3ac54bddd12977a
-
- Jan 19, 2022
-
-
Sébastien Blin authored
If the account is incorrectly registered (i.e. the common case is that the DHT socket is not correctly initialized), setRegistrationState(RegistrationState::ERROR_GENERIC) will be called and the dht will not be usable. Calling doUnregister will cause the daemon to block on dht_->shutdown(). Because the account is not ready to be used, doUnregister() should do nothing if any error happened during the registration. Also, removes 2 unused states. Change-Id: I0393786afea8c13506c7c87caf265b09182ea0ae
-
- Jan 14, 2022
-
-
Sébastien Blin authored
cloneConversation try to lock conversationsMtx_ a second time. Change-Id: I1e685a7ad478d1153ec480d2a7dd3ac962478099
-
- Jan 12, 2022
-
-
Sébastien Blin authored
Change-Id: I7380645f022b1b08d2a961e191c3dd978916fe0e
-
- Jan 10, 2022
-
-
fmt from the system on Fedora is not working properly Change-Id: Ic28a976e110fc168faa3b985cc0852a31ec34114
-
- Jan 07, 2022
-
-
Vladimir Stoiakin authored
Change-Id: I89e0f1a9006e01690fdf4fdc8cd49f404733d0bf
-
- Jan 05, 2022
-
-
Sébastien Blin authored
Change-Id: I795e3f2f69c07349bf84c87dbcafb502dc8490f8
-
jami-libclient#408 Change-Id: I930b1498b0cffc90c16cc7f4b0214f5da855b6e9
-
Change-Id: I834b8f24f94e639ab65272a2ff7e5ac4ea84c725
-
- Jan 03, 2022
-
-
Sébastien Blin authored
deviceAnnounced_ should be cleared if unregistered, to be valid for next annoucement Change-Id: I35d62e01d11780d4b30c312ec695b9cb0321d618
-
When processing an incoming or outgoing re-invite, the ice media session and its associated RTP sessions are kept until the new ice media session is successfully negotiated. Gitlab: #666 Change-Id: I608d241d82b346b2c190ada046eed86dd86a7178
-
- Dec 30, 2021
-
-
Change-Id: I028985ac90d07199cfa30d33e21f55ebef228ff3
-
Change-Id: Ic25a41cb28ae1e8b8dc51a149c304edc7f04ef50
-
Change-Id: I3aae03770f302bfe043f7bf6070a99a0d56fcebc
-
GOOPS is Guile Object Oriented Programming System. It's easier to extend and break less the scenarios using GOOPS. e.g., a scenario published on Gitlab should work two weeks later. This is not the case right now and the goal of using GOOPS is to offer a stable API for the agent, while keeping it flexible. Change-Id: If6a038b6d8c371f8e74849749770f1dec8559b91
-
- Dec 28, 2021
-
-
Sébastien Blin authored
Change-Id: I1e8e88f993d8fa66224ea1bcd48d6e9fbcb39d5e
-
Sébastien Blin authored
callbacks, such as transaction_request_cb uses the sipTransportBroker object. So, sipTransportBroker MUST be destroyed after that every callbacks are called, so after the destruction of endpt_ Change-Id: I795e02544abf9188db4971d7465ac537b1a568d9 GitLab: #681
-
- Dec 23, 2021
-
-
Change-Id: I3f7b3fd9e5bea986f5b600273ae4ddb07bdd787a
-
- Dec 22, 2021
-
-
Olivier Dion authored
Change-Id: I02ccb3c2d05aaa14a7f42dd0c6e2854f9905ccf2
-