If Alice removes Bob and Bob sends a new message, a new request
is received (because Alice doesn't block Bob). However, the
next acceptConversationRequest was not adding correctly Bob into the
contact list, because no trust request were generated (so getContacts()
in this case was returning an invalid list).
This patch ensure that the 1:1 conversation requests are similar to
the trust requests list.
Change-Id: I643d70a016ef549d69ff03a227488b10bfb8d73f
The conversation requests doesn't need to be locked when getting trust requests and may provoke a deadlock.
Gitlab: #864
Change-Id: I64e11a9ef1343f51785479f2b577fffa8ebfbf7c
ServerAccountManager didn't implement any onSyncDatas, causing
contacts to not sync across devices.
Also small fix: do not try to clone conversation already, it was
adding a useless log.
Change-Id: I494ee75ee0313c05056ee83ddcb8d9be500f593a
An account can try to connect to a device that the presence was never
yet detected on the DHT but can use the public key from the repository.
Bootstrap can use devices from the repository.
Moreover, do not try to bootstrap with expired devices, as they are
invalid anyway, so the connection will obviously fail.
Change-Id: I5493419681e88fa3f920efabb0ab7019319c05fd
This allow to avoid to get a duplicate if a contact is added,
removed and re-added (as it will generate two conversations).
The first one is automatically declined and replaced by the new one.
GitLab: #855
Change-Id: I67d51d2286aaee3b29c9e9bdbcb10aa45f40aa26
If a contact is added, removed and a new trust request generated
and removed with "removeContact" it wasn't removing the trust request
because the contact wasn't considered as active and the banned status
didn't change.
Removing this return condition force all components to update and
supports client if they use removeContact instead of declineTrustRequest.
This avoid useless complexity with isActive, because if isActive() is
false, removeContact will not change the result and isActive() will
still return false.
A test is added.
GitLab: #855
Change-Id: I4385c2a480f6cfa5de3785a08bc2193eeb9a24a1
+ dbusinstance: count_ can be initialized to something else than 0
causing count_ to always be incorrect
+ ring_api: check pointer for ioContext() (because a callback may
be emitted right after ioContext() is resetted causing to end
on a segfault instead exit=0)
GitLab: #861
Change-Id: If0d798aaa2ce7d65426d902868627bd701652375
Since the DRT, we're not using trackPresence to start syncing
with other members of the conversation but "bootstrap".
For bootstraping conversation's requests we should try to clone
it with the members marked in the convInfo.
Also fix one incorrect test.
Change-Id: I8cbefe266c15c637ef23350220a71a616ddefab6
This reverts commit 65c8631975.
Reason for revert: I see only this commit that can cause duplicates to appears. Will check without
Change-Id: I3a36a59fb87c8cddaa7c9020112efabe9073a041
For a declined channel, onReady wasn't called. Only onShutdown()
causing all waiting callbacks to be declined if the connecting
channel was declined.
Now onReady is always called if channel is declined or accepted,
so we call all callbacks correctly. This fix sporadic failures
in testMultipleChannelsOneDeclined where the git channel was
declined as the connecting channel.
Change-Id: I0ff7550c2f35cbcf20aaf796d56badfb18bec515
Currently, when a contact accepts an invitation while
iOS is in the background, the extension stops the
daemon before synchronization is completed. This
patch allows the client-ios to know when the fetch
is completed, so it can wait until the conversation
is cloned.
GitLab: #776
Change-Id: I123f3ca94c1cece1138db09d536f48e6533cf78f
Since the DRT, we're not using trackPresence to start syncing
with other members of the conversation but "bootstrap".
For bootstraping conversation's requests we should try to clone
it with the members marked in the convInfo.
Change-Id: I4095ee59d56a28c4a24f8f4ddd9116109e6d0b7c
Else we can replace the first notification to send and create
some weird race-conditions. Fix testMemberBanNoBadFile
Change-Id: I5b902cf67fe5647faaef7801ad6ce380cd801c78
If all pending connections fails, it should remove all waiting callbacks
and not only the connecting one.
So, introduce a structure to make the difference between PendingCb linked
to a ongoing DHT request and others waiting for the request to finish.
If all ongoing requests fails, all waiting callbacks are called. This
avoid wrong "Already connecting" messages.
Change-Id: I518f1ef85294f55f78d1b75638b1612c68ea0a0a
Else, we can see several deadlock (closeVideoInput() will wait
forever, because a signal is emitted before the method is finished
causing a deadlock in sdbus-cpp)
Change-Id: I87d5a5d51e80f3b75e60354595f8c618def361ff
Else, passing the path and not the content of the file will cause:
Could not read certificate - ASN1: error in TAG
Change-Id: I2db356d1ccf8d3b059072cc14e64df8369f84e77