aboutsummaryrefslogtreecommitdiffstats
path: root/p2p/discover/udp.go
diff options
context:
space:
mode:
authorJeffrey Wilcke <jeffrey@ethereum.org>2015-11-27 17:41:22 +0800
committerJeffrey Wilcke <jeffrey@ethereum.org>2015-11-27 17:41:22 +0800
commit7dde2b902cf81e90b484b1a48f6d45e0abd10e0f (patch)
tree9b92cb3e42269697e0a2b553ba31c36aef73cc25 /p2p/discover/udp.go
parentffe58bf5abe5100b29ac1091c882f586cd3a2ef9 (diff)
parent3e1000fda3424d880bc43ebbb16d8a33447d4182 (diff)
downloadgo-tangerine-7dde2b902cf81e90b484b1a48f6d45e0abd10e0f.tar
go-tangerine-7dde2b902cf81e90b484b1a48f6d45e0abd10e0f.tar.gz
go-tangerine-7dde2b902cf81e90b484b1a48f6d45e0abd10e0f.tar.bz2
go-tangerine-7dde2b902cf81e90b484b1a48f6d45e0abd10e0f.tar.lz
go-tangerine-7dde2b902cf81e90b484b1a48f6d45e0abd10e0f.tar.xz
go-tangerine-7dde2b902cf81e90b484b1a48f6d45e0abd10e0f.tar.zst
go-tangerine-7dde2b902cf81e90b484b1a48f6d45e0abd10e0f.zip
Merge pull request #1970 from karalabe/customizable-protocol-stacks
Customizable protocol stacks
Diffstat (limited to 'p2p/discover/udp.go')
-rw-r--r--p2p/discover/udp.go16
1 files changed, 12 insertions, 4 deletions
diff --git a/p2p/discover/udp.go b/p2p/discover/udp.go
index 20f69cf08..fc7fa737c 100644
--- a/p2p/discover/udp.go
+++ b/p2p/discover/udp.go
@@ -200,12 +200,15 @@ func ListenUDP(priv *ecdsa.PrivateKey, laddr string, natm nat.Interface, nodeDBP
if err != nil {
return nil, err
}
- tab, _ := newUDP(priv, conn, natm, nodeDBPath)
+ tab, _, err := newUDP(priv, conn, natm, nodeDBPath)
+ if err != nil {
+ return nil, err
+ }
glog.V(logger.Info).Infoln("Listening,", tab.self)
return tab, nil
}
-func newUDP(priv *ecdsa.PrivateKey, c conn, natm nat.Interface, nodeDBPath string) (*Table, *udp) {
+func newUDP(priv *ecdsa.PrivateKey, c conn, natm nat.Interface, nodeDBPath string) (*Table, *udp, error) {
udp := &udp{
conn: c,
priv: priv,
@@ -225,10 +228,15 @@ func newUDP(priv *ecdsa.PrivateKey, c conn, natm nat.Interface, nodeDBPath strin
}
// TODO: separate TCP port
udp.ourEndpoint = makeEndpoint(realaddr, uint16(realaddr.Port))
- udp.Table = newTable(udp, PubkeyID(&priv.PublicKey), realaddr, nodeDBPath)
+ tab, err := newTable(udp, PubkeyID(&priv.PublicKey), realaddr, nodeDBPath)
+ if err != nil {
+ return nil, nil, err
+ }
+ udp.Table = tab
+
go udp.loop()
go udp.readLoop()
- return udp.Table, udp
+ return udp.Table, udp, nil
}
func (t *udp) close() {