class DEVp2p::P2PProtocol::Disconnect
Constants
- Reason
Public Instance Methods
create(proto, reason=Reason[:client_quitting])
click to toggle source
# File lib/devp2p/p2p_protocol.rb, line 97 def create(proto, reason=Reason[:client_quitting]) raise ArgumentError, "unknown reason" unless reason_key(reason) logger.debug "send_disconnect", peer: proto.peer, reason: reason_name(reason) proto.peer.async.report_error "sending disconnect #{reason_name(reason)}" Concurrent::ScheduledTask.execute(0.5) { proto.peer.async.stop } {reason: reason} end
reason_key(id)
click to toggle source
# File lib/devp2p/p2p_protocol.rb, line 88 def reason_key(id) Reason.invert[id] end
reason_name(id)
click to toggle source
# File lib/devp2p/p2p_protocol.rb, line 92 def reason_name(id) key = reason_key id key ? key.to_s : "unknown (id:#{id})" end
receive(proto, data)
click to toggle source
# File lib/devp2p/p2p_protocol.rb, line 108 def receive(proto, data) logger.debug "receive_disconnect", peer: proto.peer, reason: reason_name(data[:reason]) proto.peer.async.report_error "disconnected #{reason_name(data[:reason])}" proto.peer.async.stop end
Private Instance Methods
logger()
click to toggle source
# File lib/devp2p/p2p_protocol.rb, line 116 def logger @logger = Logger.new "p2p.protocol" end