mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-10 20:22:02 +00:00
fix Rpc Ping sequence number (#6408)
* fix Rpc Ping sequence number * bubble up Outbound Err's and Responses even if the peer disconnected * send pings via Rpc from main network * add comment to connected check * Merge branch 'unstable' into fix-ping-seq-number
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
use super::methods::{GoodbyeReason, RPCCodedResponse, RPCResponseErrorCode};
|
||||
use super::outbound::OutboundRequestContainer;
|
||||
use super::protocol::{InboundOutput, InboundRequest, Protocol, RPCError, RPCProtocol};
|
||||
use super::{RPCReceived, RPCResponse, RPCSend, ReqId};
|
||||
use super::{RPCReceived, RPCSend, ReqId};
|
||||
use crate::rpc::outbound::{OutboundFramed, OutboundRequest};
|
||||
use crate::rpc::protocol::InboundFramed;
|
||||
use fnv::FnvHashMap;
|
||||
@@ -14,8 +14,7 @@ use libp2p::swarm::handler::{
|
||||
ConnectionEvent, ConnectionHandler, ConnectionHandlerEvent, DialUpgradeError,
|
||||
FullyNegotiatedInbound, FullyNegotiatedOutbound, StreamUpgradeError, SubstreamProtocol,
|
||||
};
|
||||
use libp2p::swarm::{ConnectionId, Stream};
|
||||
use libp2p::PeerId;
|
||||
use libp2p::swarm::Stream;
|
||||
use slog::{crit, debug, trace};
|
||||
use smallvec::SmallVec;
|
||||
use std::{
|
||||
@@ -89,12 +88,6 @@ pub struct RPCHandler<Id, E>
|
||||
where
|
||||
E: EthSpec,
|
||||
{
|
||||
/// This `ConnectionId`.
|
||||
id: ConnectionId,
|
||||
|
||||
/// The matching `PeerId` of this connection.
|
||||
peer_id: PeerId,
|
||||
|
||||
/// The upgrade for inbound substreams.
|
||||
listen_protocol: SubstreamProtocol<RPCProtocol<E>, ()>,
|
||||
|
||||
@@ -225,16 +218,12 @@ where
|
||||
E: EthSpec,
|
||||
{
|
||||
pub fn new(
|
||||
id: ConnectionId,
|
||||
peer_id: PeerId,
|
||||
listen_protocol: SubstreamProtocol<RPCProtocol<E>, ()>,
|
||||
fork_context: Arc<ForkContext>,
|
||||
log: &slog::Logger,
|
||||
resp_timeout: Duration,
|
||||
) -> Self {
|
||||
RPCHandler {
|
||||
id,
|
||||
peer_id,
|
||||
listen_protocol,
|
||||
events_out: SmallVec::new(),
|
||||
dial_queue: SmallVec::new(),
|
||||
@@ -903,15 +892,6 @@ where
|
||||
self.shutdown(None);
|
||||
}
|
||||
|
||||
// If we received a Ping, we queue a Pong response.
|
||||
if let InboundRequest::Ping(ping) = req {
|
||||
trace!(self.log, "Received Ping, queueing Pong";"connection_id" => %self.id, "peer_id" => %self.peer_id);
|
||||
self.send_response(
|
||||
self.current_inbound_substream_id,
|
||||
RPCCodedResponse::Success(RPCResponse::Pong(ping)),
|
||||
);
|
||||
}
|
||||
|
||||
self.events_out.push(HandlerEvent::Ok(RPCReceived::Request(
|
||||
self.current_inbound_substream_id,
|
||||
req,
|
||||
|
||||
Reference in New Issue
Block a user