summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2025-10-21 22:35:30 +0800
committerlittleblack111 <littleblack11111@gmail.com>2025-10-21 22:48:29 +0800
commit715b77323d22044bf4dd75dfd069edd7198a7036 (patch)
treea70e2c74fa3a9132a8db5f635d3f41f2f06cb3f1
parentdb71798db2ba7ede27f2ad7f2428cffbf8f1e98c (diff)
refactor(network): direct write function, which broadcast uses now
feat(cmd): fetch to refresh idb
-rw-r--r--src/network.rs27
-rw-r--r--src/ui.rs9
2 files changed, 26 insertions, 10 deletions
diff --git a/src/network.rs b/src/network.rs
index 72f47e7..1a08053 100644
--- a/src/network.rs
+++ b/src/network.rs
@@ -160,20 +160,27 @@ impl Network {
.clone()
};
for p in peers {
- let sink = {
- let peer = p
- .lock()
- .await;
- Arc::clone(&peer.sink)
- };
- let mut sink = sink
+ p.lock()
+ .await
+ .sink
.lock()
- .await;
- let _ = sink
+ .await
.send(data.clone())
- .await;
+ .await
+ .unwrap();
}
}
+
+ async fn write(peer: &mut Peer, data: Request) -> Result<(), std::io::Error> {
+ let sink = peer
+ .sink
+ .clone();
+ let mut sink = sink
+ .lock()
+ .await;
+ sink.send(data.clone())
+ .await
+ }
}
struct Peer {
diff --git a/src/ui.rs b/src/ui.rs
index a6a1cd6..df181f5 100644
--- a/src/ui.rs
+++ b/src/ui.rs
@@ -76,6 +76,15 @@ impl Ui {
}
}
+ if cmd[0] == "fetch" {
+ self.network
+ .upgrade()
+ .unwrap()
+ .lock()
+ .await
+ .get_idb();
+ }
+
None
}
}