OSDN Git Service

test2
authorpaladz <453256728@qq.com>
Thu, 24 May 2018 11:25:13 +0000 (19:25 +0800)
committerpaladz <453256728@qq.com>
Thu, 24 May 2018 11:25:13 +0000 (19:25 +0800)
p2p/node_info.go
p2p/pex/pex_reactor.go
p2p/switch.go

index 6e2543b..25d8da5 100644 (file)
@@ -73,6 +73,12 @@ func (info *NodeInfo) ListenPort() int {
        return portInt
 }
 
+//RemoteAddrHost peer external ip address
+func (info *NodeInfo) RemoteAddrHost() string {
+       host, _, _ := net.SplitHostPort(info.RemoteAddr)
+       return host
+}
+
 //String representation
 func (info NodeInfo) String() string {
        return fmt.Sprintf("NodeInfo{pk: %v, moniker: %v, network: %v [listen %v], version: %v (%v)}", info.PubKey, info.Moniker, info.Network, info.ListenAddr, info.Version, info.Other)
index 3ddaca6..8e956ed 100644 (file)
@@ -224,7 +224,7 @@ func (r *PEXReactor) ensurePeers() {
 
        connectedPeers := make(map[string]struct{})
        for _, peer := range r.Switch.Peers().List() {
-               connectedPeers[peer.RemoteAddr] = struct{}{}
+               connectedPeers[peer.RemoteAddrHost()] = struct{}{}
        }
 
        for i := 0; i < maxAttempts && len(toDial) < numToDial; i++ {
@@ -238,7 +238,7 @@ func (r *PEXReactor) ensurePeers() {
                if dialling := r.Switch.IsDialing(try); dialling {
                        continue
                }
-               if _, ok := connectedPeers[try.String()]; ok {
+               if _, ok := connectedPeers[try.IP.String()]; ok {
                        continue
                }
 
index d125f3b..27dec0d 100644 (file)
@@ -407,7 +407,7 @@ func (sw *Switch) addPeerWithConnection(conn net.Conn) error {
 func (sw *Switch) AddBannedPeer(peer *Peer) error {
        sw.mtx.Lock()
        defer sw.mtx.Unlock()
-       key := peer.RemoteAddr
+       key := peer.NodeInfo.RemoteAddrHost()
        sw.bannedPeer[key] = time.Now().Add(defaultBanDuration)
        datajson, err := json.Marshal(sw.bannedPeer)
        if err != nil {