OSDN Git Service

fix ban node failed (#256)
authoryahtoo <yahtoo.ma@gmail.com>
Wed, 10 Jul 2019 12:02:17 +0000 (20:02 +0800)
committerPaladz <yzhu101@uottawa.ca>
Wed, 10 Jul 2019 12:02:17 +0000 (20:02 +0800)
netsync/chainmgr/tool_test.go
netsync/consensusmgr/block_fetcher_test.go
netsync/peers/peer.go
p2p/node_info.go
p2p/switch.go

index 6381641..6559675 100644 (file)
@@ -48,6 +48,10 @@ func (p *P2PPeer) IsLAN() bool {
        return false
 }
 
+func (p *P2PPeer) RemoteAddrHost() string {
+       return ""
+}
+
 func (p *P2PPeer) ServiceFlag() consensus.ServiceFlag {
        return p.flag
 }
@@ -89,7 +93,7 @@ func NewPeerSet() *PeerSet {
        return &PeerSet{}
 }
 
-func (ps *PeerSet) IsBanned(peerID string, level byte, reason string) bool {
+func (ps *PeerSet) IsBanned(ip string, level byte, reason string) bool {
        return false
 }
 
index 7ac1edf..8d0df22 100644 (file)
@@ -12,7 +12,7 @@ import (
 type peerMgr struct {
 }
 
-func (pm *peerMgr) IsBanned(peerID string, level byte, reason string) bool {
+func (pm *peerMgr) IsBanned(ip string, level byte, reason string) bool {
        return false
 }
 
index d0eb7ee..e74a458 100644 (file)
@@ -36,6 +36,7 @@ var (
 type BasePeer interface {
        Addr() net.Addr
        ID() string
+       RemoteAddrHost() string
        ServiceFlag() consensus.ServiceFlag
        TrafficStatus() (*flowrate.Status, *flowrate.Status)
        TrySend(byte, interface{}) bool
@@ -45,7 +46,7 @@ type BasePeer interface {
 //BasePeerSet is the intergace for connection level peer manager
 type BasePeerSet interface {
        StopPeerGracefully(string)
-       IsBanned(peerID string, level byte, reason string) bool
+       IsBanned(ip string, level byte, reason string) bool
 }
 
 type BroadcastMsg interface {
@@ -417,7 +418,8 @@ func (ps *PeerSet) ProcessIllegal(peerID string, level byte, reason string) {
        if peer == nil {
                return
        }
-       if banned := ps.IsBanned(peer.Addr().String(), level, reason); banned {
+
+       if banned := ps.IsBanned(peer.RemoteAddrHost(), level, reason); banned {
                ps.RemovePeer(peerID)
        }
        return
index e602a0d..d0c52a9 100644 (file)
@@ -86,7 +86,7 @@ func (info NodeInfo) listenHost() string {
 }
 
 //remoteAddrHost peer external ip address
-func (info NodeInfo) remoteAddrHost() string {
+func (info NodeInfo) RemoteAddrHost() string {
        host, _, _ := net.SplitHostPort(info.RemoteAddr)
        return host
 }
index ef8306d..5cd234b 100644 (file)
@@ -19,8 +19,8 @@ import (
        "github.com/vapor/p2p/discover/dht"
        "github.com/vapor/p2p/discover/mdns"
        "github.com/vapor/p2p/netutil"
-       "github.com/vapor/p2p/signlib"
        security "github.com/vapor/p2p/security"
+       "github.com/vapor/p2p/signlib"
        "github.com/vapor/version"
 )
 
@@ -199,7 +199,7 @@ func (sw *Switch) AddPeer(pc *peerConn, isLAN bool) error {
        }
 
        peer := newPeer(pc, peerNodeInfo, sw.reactorsByCh, sw.chDescs, sw.StopPeerForError, isLAN)
-       if err := sw.security.DoFilter(peer.remoteAddrHost(), peer.PubKey()); err != nil {
+       if err := sw.security.DoFilter(peer.RemoteAddrHost(), peer.PubKey()); err != nil {
                return err
        }
 
@@ -419,7 +419,7 @@ func (sw *Switch) dialPeerWorker(a *NetAddress, wg *sync.WaitGroup) {
 func (sw *Switch) dialPeers(addresses []*NetAddress) {
        connectedPeers := make(map[string]struct{})
        for _, peer := range sw.Peers().List() {
-               connectedPeers[peer.remoteAddrHost()] = struct{}{}
+               connectedPeers[peer.RemoteAddrHost()] = struct{}{}
        }
 
        var wg sync.WaitGroup