scatter_net/legacy/protocol/implementations/
protocol_handler.rs

1use 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}