good morning!!!!

Skip to content
Snippets Groups Projects
Commit aa934157 authored by Jeffrey Wilcke's avatar Jeffrey Wilcke
Browse files

Disconnection reasons

parent f4a96ca5
Branches
Tags
No related merge requests found
......@@ -17,27 +17,53 @@ const (
outputBufferSize = 50
)
// Peer capabillities
type DiscReason byte
const (
DiscReRequested = 0x00
DiscReTcpSysErr = 0x01
DiscBadProto = 0x02
DiscBadPeer = 0x03
DiscTooManyPeers = 0x04
)
var discReasonToString = []string{
"Disconnect requested",
"Disconnect TCP sys error",
"Disconnect Bad protocol",
"Disconnect Useless peer",
"Disconnect Too many peers",
}
func (d DiscReason) String() string {
if len(discReasonToString) > int(d) {
return "Unknown"
}
return discReasonToString[d]
}
// Peer capabilities
type Caps byte
const (
CapDiscoveryTy = 0x01
CapPeerDiscTy = 0x01
CapTxTy = 0x02
CapChainTy = 0x04
CapDefault = CapChainTy | CapTxTy | CapDiscoveryTy
CapDefault = CapChainTy | CapTxTy | CapPeerDiscTy
)
var capsToString = map[Caps]string{
CapDiscoveryTy: "Peer discovery",
CapPeerDiscTy: "Peer discovery",
CapTxTy: "Transaction relaying",
CapChainTy: "Block chain relaying",
}
func (c Caps) String() string {
var caps []string
if c&CapDiscoveryTy > 0 {
caps = append(caps, capsToString[CapDiscoveryTy])
if c&CapPeerDiscTy > 0 {
caps = append(caps, capsToString[CapPeerDiscTy])
}
if c&CapChainTy > 0 {
caps = append(caps, capsToString[CapChainTy])
......@@ -175,7 +201,7 @@ out:
// Service timer takes care of peer broadcasting, transaction
// posting or block posting
case <-serviceTimer.C:
if p.caps&CapDiscoveryTy > 0 {
if p.caps&CapPeerDiscTy > 0 {
msg := p.peersMessage()
p.ethereum.BroadcastMsg(msg)
}
......@@ -220,6 +246,7 @@ out:
p.QueueMessage(ethwire.NewMessage(ethwire.MsgGetPeersTy, ""))
case ethwire.MsgDiscTy:
p.Stop()
log.Println("Disconnect peer:", DiscReason(msg.Data.Get(0).AsUint()))
case ethwire.MsgPingTy:
// Respond back with pong
p.QueueMessage(ethwire.NewMessage(ethwire.MsgPongTy, ""))
......@@ -381,8 +408,6 @@ func (p *Peer) Stop() {
p.writeMessage(ethwire.NewMessage(ethwire.MsgDiscTy, ""))
p.conn.Close()
}
log.Println("Peer shutdown")
}
func (p *Peer) pushHandshake() error {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment