fix(handler): do call handler methods when initialize server (#118)

This commit is contained in:
4t145 2025-04-10 15:06:45 +08:00 • committed by GitHub
commit 31da5ff02d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -504,15 +504,16 @@ where
T: IntoTransport<R, E, A>,
E: std::error::Error + Send + Sync + 'static,
{
serve_inner(service, transport, peer_info, Default::default(), ct).await
let (peer, peer_rx) = Peer::new(Arc::new(AtomicU32RequestIdProvider::default()), peer_info);
serve_inner(service, transport, peer, peer_rx, ct).await
}
#[instrument(skip_all)]
async fn serve_inner<R, S, T, E, A>(
mut service: S,
transport: T,
peer_info: R::PeerInfo,
id_provider: Arc<AtomicU32Provider>,
peer: Peer<R>,
mut peer_rx: tokio::sync::mpsc::Receiver<PeerSinkMessage<R>>,
ct: CancellationToken,
) -> Result<RunningService<R, S>, E>
where
@ -525,14 +526,13 @@ where
const SINK_PROXY_BUFFER_SIZE: usize = 64;
let (sink_proxy_tx, mut sink_proxy_rx) =
tokio::sync::mpsc::channel::<TxJsonRpcMessage<R>>(SINK_PROXY_BUFFER_SIZE);
let peer_info = peer.peer_info();
if R::IS_CLIENT {
tracing::info!(?peer_info, "Service initialized as client");
} else {
tracing::info!(?peer_info, "Service initialized as server");
}
let (peer, mut peer_proxy) = <Peer<R>>::new(id_provider, peer_info);
service.set_peer(peer.clone());
let mut local_responder_pool = HashMap::new();
let mut local_ct_pool = HashMap::<RequestId, CancellationToken>::new();
@ -576,7 +576,7 @@ where
break QuitReason::Closed
}
}
m = peer_proxy.recv() => {
m = peer_rx.recv() => {
if let Some(m) = m {
Event::ProxyMessage(m)
} else {