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)
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++ {
if dialling := r.Switch.IsDialing(try); dialling {
continue
}
- if _, ok := connectedPeers[try.String()]; ok {
+ if _, ok := connectedPeers[try.IP.String()]; ok {
continue
}
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 {