cyrpto: Go into passive mode if someone else replies to a request
This commit is contained in:
parent
be53913a16
commit
80fac4bfa4
1 changed files with 17 additions and 1 deletions
|
@ -305,7 +305,11 @@ impl VerificationRequest {
|
||||||
let mut inner = self.inner.lock().unwrap();
|
let mut inner = self.inner.lock().unwrap();
|
||||||
|
|
||||||
if let InnerRequest::Created(s) = &*inner {
|
if let InnerRequest::Created(s) = &*inner {
|
||||||
*inner = InnerRequest::Ready(s.clone().into_ready(sender, content));
|
if sender == self.own_user_id() && content.from_device() == self.account.device_id() {
|
||||||
|
*inner = InnerRequest::Passive(s.clone().into_passive(content))
|
||||||
|
} else {
|
||||||
|
*inner = InnerRequest::Ready(s.clone().into_ready(sender, content));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -515,6 +519,18 @@ impl RequestState<Created> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn into_passive(self, content: &ReadyContent) -> RequestState<Passive> {
|
||||||
|
RequestState {
|
||||||
|
account: self.account,
|
||||||
|
flow_id: self.flow_id,
|
||||||
|
verification_cache: self.verification_cache,
|
||||||
|
private_cross_signing_identity: self.private_cross_signing_identity,
|
||||||
|
store: self.store,
|
||||||
|
other_user_id: self.other_user_id,
|
||||||
|
state: Passive { other_device_id: content.from_device().to_owned() },
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fn into_ready(self, _sender: &UserId, content: &ReadyContent) -> RequestState<Ready> {
|
fn into_ready(self, _sender: &UserId, content: &ReadyContent) -> RequestState<Ready> {
|
||||||
// TODO check the flow id, and that the methods match what we suggested.
|
// TODO check the flow id, and that the methods match what we suggested.
|
||||||
RequestState {
|
RequestState {
|
||||||
|
|
Loading…
Reference in a new issue