fix reconnect when reset by the peer && improper 10054 reconnect

Signed-off-by: 21pages <pages21@163.com>
This commit is contained in:
21pages
2022-12-19 15:09:08 +08:00
parent ea38e70974
commit 277a4b1b29
3 changed files with 24 additions and 6 deletions

View File

@@ -657,7 +657,10 @@ impl<T: InvokeUiSession> Interface for Session<T> {
}
fn msgbox(&self, msgtype: &str, title: &str, text: &str, link: &str) {
let retry = check_if_retry(msgtype, title, text);
let direct = self.lc.read().unwrap().direct.unwrap_or_default();
let received = self.lc.read().unwrap().received;
let retry_for_relay = direct && !received;
let retry = check_if_retry(msgtype, title, text, retry_for_relay);
self.ui_handler.msgbox(msgtype, title, text, link, retry);
}
@@ -745,6 +748,12 @@ impl<T: InvokeUiSession> Interface for Session<T> {
}
}
fn set_connection_info(&mut self, direct: bool, received: bool) {
let mut lc = self.lc.write().unwrap();
lc.direct = Some(direct);
lc.received = received;
}
fn set_force_relay(&mut self, direct: bool, received: bool) {
let mut lc = self.lc.write().unwrap();
lc.force_relay = false;