aboutsummaryrefslogtreecommitdiffstats
path: root/p2p/discover/udp.go
diff options
context:
space:
mode:
authorJeffrey Wilcke <jeffrey@ethereum.org>2015-04-28 18:40:10 +0800
committerJeffrey Wilcke <jeffrey@ethereum.org>2015-04-28 18:40:10 +0800
commit91cb8cdd2acdcaceb577fd0ea9eb0997d42f8470 (patch)
tree35f36ea4a2cbc68a5b0410e4367d485db3ffe545 /p2p/discover/udp.go
parente88b410b4d25c65b023b4ee7b4d1bc5dbc4dab93 (diff)
parent4992765032b4318f3f5b4940a553b4e552c55963 (diff)
downloaddexon-91cb8cdd2acdcaceb577fd0ea9eb0997d42f8470.tar
dexon-91cb8cdd2acdcaceb577fd0ea9eb0997d42f8470.tar.gz
dexon-91cb8cdd2acdcaceb577fd0ea9eb0997d42f8470.tar.bz2
dexon-91cb8cdd2acdcaceb577fd0ea9eb0997d42f8470.tar.lz
dexon-91cb8cdd2acdcaceb577fd0ea9eb0997d42f8470.tar.xz
dexon-91cb8cdd2acdcaceb577fd0ea9eb0997d42f8470.tar.zst
dexon-91cb8cdd2acdcaceb577fd0ea9eb0997d42f8470.zip
Merge pull request #793 from karalabe/discovery-node-cache
p2p/discover: persistent node database
Diffstat (limited to 'p2p/discover/udp.go')
-rw-r--r--p2p/discover/udp.go10
1 files changed, 5 insertions, 5 deletions
diff --git a/p2p/discover/udp.go b/p2p/discover/udp.go
index 07a1a739c..65741b5f5 100644
--- a/p2p/discover/udp.go
+++ b/p2p/discover/udp.go
@@ -144,7 +144,7 @@ type reply struct {
}
// ListenUDP returns a new table that listens for UDP packets on laddr.
-func ListenUDP(priv *ecdsa.PrivateKey, laddr string, natm nat.Interface) (*Table, error) {
+func ListenUDP(priv *ecdsa.PrivateKey, laddr string, natm nat.Interface, nodeDBPath string) (*Table, error) {
addr, err := net.ResolveUDPAddr("udp", laddr)
if err != nil {
return nil, err
@@ -153,12 +153,12 @@ func ListenUDP(priv *ecdsa.PrivateKey, laddr string, natm nat.Interface) (*Table
if err != nil {
return nil, err
}
- tab, _ := newUDP(priv, conn, natm)
+ tab, _ := newUDP(priv, conn, natm, nodeDBPath)
glog.V(logger.Info).Infoln("Listening,", tab.self)
return tab, nil
}
-func newUDP(priv *ecdsa.PrivateKey, c conn, natm nat.Interface) (*Table, *udp) {
+func newUDP(priv *ecdsa.PrivateKey, c conn, natm nat.Interface, nodeDBPath string) (*Table, *udp) {
udp := &udp{
conn: c,
priv: priv,
@@ -176,7 +176,7 @@ func newUDP(priv *ecdsa.PrivateKey, c conn, natm nat.Interface) (*Table, *udp) {
realaddr = &net.UDPAddr{IP: ext, Port: realaddr.Port}
}
}
- udp.Table = newTable(udp, PubkeyID(&priv.PublicKey), realaddr)
+ udp.Table = newTable(udp, PubkeyID(&priv.PublicKey), realaddr, nodeDBPath)
go udp.loop()
go udp.readLoop()
return udp.Table, udp
@@ -449,7 +449,7 @@ func (req *findnode) handle(t *udp, from *net.UDPAddr, fromID NodeID, mac []byte
if expired(req.Expiration) {
return errExpired
}
- if t.db.get(fromID) == nil {
+ if t.db.node(fromID) == nil {
// No bond exists, we don't process the packet. This prevents
// an attack vector where the discovery protocol could be used
// to amplify traffic in a DDOS attack. A malicious actor