scatter_net/legacy/protocol/implementations/
protocol_handler.rs1use iroh::protocol::{AcceptError, ProtocolHandler};
2
3use crate::{ScatterNet, ScatterNetProtocol, Terminate};
4
5impl ProtocolHandler for ScatterNetProtocol {
6 async fn accept(&self, connection: iroh::endpoint::Connection) -> Result<(), AcceptError> {
7 let result = ScatterNet::init_peer(&self.net, connection, None);
8
9 match result {
10 Ok(_) => Ok(()),
11 Err(err) => Err(AcceptError::User {
12 source: err.into_boxed_dyn_error(),
13 }),
14 }
15 }
16
17 async fn shutdown(&self) {
18 self.net.terminate(0u8, &"ScatterNetProtocol is exiting.");
19 }
20}