|
|
@ -26,6 +26,7 @@ import ( |
|
|
|
"github.com/ethereum/go-ethereum/logger" |
|
|
|
"github.com/ethereum/go-ethereum/logger" |
|
|
|
"github.com/ethereum/go-ethereum/logger/glog" |
|
|
|
"github.com/ethereum/go-ethereum/logger/glog" |
|
|
|
"github.com/ethereum/go-ethereum/p2p/discover" |
|
|
|
"github.com/ethereum/go-ethereum/p2p/discover" |
|
|
|
|
|
|
|
"github.com/ethereum/go-ethereum/p2p/netutil" |
|
|
|
"github.com/ethereum/go-ethereum/swarm/network/kademlia" |
|
|
|
"github.com/ethereum/go-ethereum/swarm/network/kademlia" |
|
|
|
"github.com/ethereum/go-ethereum/swarm/storage" |
|
|
|
"github.com/ethereum/go-ethereum/swarm/storage" |
|
|
|
) |
|
|
|
) |
|
|
@ -288,6 +289,10 @@ func newNodeRecord(addr *peerAddr) *kademlia.NodeRecord { |
|
|
|
func (self *Hive) HandlePeersMsg(req *peersMsgData, from *peer) { |
|
|
|
func (self *Hive) HandlePeersMsg(req *peersMsgData, from *peer) { |
|
|
|
var nrs []*kademlia.NodeRecord |
|
|
|
var nrs []*kademlia.NodeRecord |
|
|
|
for _, p := range req.Peers { |
|
|
|
for _, p := range req.Peers { |
|
|
|
|
|
|
|
if err := netutil.CheckRelayIP(from.remoteAddr.IP, p.IP); err != nil { |
|
|
|
|
|
|
|
glog.V(logger.Detail).Infof("invalid peer IP %v from %v: %v", from.remoteAddr.IP, p.IP, err) |
|
|
|
|
|
|
|
continue |
|
|
|
|
|
|
|
} |
|
|
|
nrs = append(nrs, newNodeRecord(p)) |
|
|
|
nrs = append(nrs, newNodeRecord(p)) |
|
|
|
} |
|
|
|
} |
|
|
|
self.kad.Add(nrs) |
|
|
|
self.kad.Add(nrs) |
|
|
|