removed upnp
This commit is contained in:
parent
cb8a7d979d
commit
ae0d4eb7aa
52
ethereum.go
52
ethereum.go
@ -8,7 +8,6 @@ import (
|
|||||||
"github.com/ethereum/ethwire-go"
|
"github.com/ethereum/ethwire-go"
|
||||||
"log"
|
"log"
|
||||||
"net"
|
"net"
|
||||||
"strconv"
|
|
||||||
"sync"
|
"sync"
|
||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
"time"
|
"time"
|
||||||
@ -45,8 +44,6 @@ type Ethereum struct {
|
|||||||
|
|
||||||
Addr net.Addr
|
Addr net.Addr
|
||||||
|
|
||||||
nat NAT
|
|
||||||
|
|
||||||
peerMut sync.Mutex
|
peerMut sync.Mutex
|
||||||
|
|
||||||
// Capabilities for outgoing peers
|
// Capabilities for outgoing peers
|
||||||
@ -62,12 +59,6 @@ func New(caps Caps) (*Ethereum, error) {
|
|||||||
|
|
||||||
ethutil.Config.Db = db
|
ethutil.Config.Db = db
|
||||||
|
|
||||||
nat, err := Discover()
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Can't discover upnp: %v", err)
|
|
||||||
}
|
|
||||||
log.Println(nat)
|
|
||||||
|
|
||||||
nonce, _ := ethutil.RandomUint64()
|
nonce, _ := ethutil.RandomUint64()
|
||||||
ethereum := &Ethereum{
|
ethereum := &Ethereum{
|
||||||
shutdownChan: make(chan bool),
|
shutdownChan: make(chan bool),
|
||||||
@ -75,7 +66,6 @@ func New(caps Caps) (*Ethereum, error) {
|
|||||||
peers: list.New(),
|
peers: list.New(),
|
||||||
Nonce: nonce,
|
Nonce: nonce,
|
||||||
serverCaps: caps,
|
serverCaps: caps,
|
||||||
nat: nat,
|
|
||||||
}
|
}
|
||||||
ethereum.TxPool = ethchain.NewTxPool()
|
ethereum.TxPool = ethchain.NewTxPool()
|
||||||
ethereum.TxPool.Speaker = ethereum
|
ethereum.TxPool.Speaker = ethereum
|
||||||
@ -213,46 +203,6 @@ func (s *Ethereum) ReapDeadPeerHandler() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME
|
|
||||||
func (s *Ethereum) upnpUpdateThread() {
|
|
||||||
// Go off immediately to prevent code duplication, thereafter we renew
|
|
||||||
// lease every 15 minutes.
|
|
||||||
timer := time.NewTimer(0 * time.Second)
|
|
||||||
lport, _ := strconv.ParseInt("30303", 10, 16)
|
|
||||||
first := true
|
|
||||||
out:
|
|
||||||
for {
|
|
||||||
select {
|
|
||||||
case <-timer.C:
|
|
||||||
listenPort, err := s.nat.AddPortMapping("TCP", int(lport), int(lport), "eth listen port", 20*60)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("can't add UPnP port mapping: %v\n", err)
|
|
||||||
}
|
|
||||||
if first && err == nil {
|
|
||||||
externalip, err := s.nat.GetExternalAddress()
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("UPnP can't get external address: %v\n", err)
|
|
||||||
continue out
|
|
||||||
}
|
|
||||||
// externalip, listenport
|
|
||||||
log.Println("Successfully bound via UPnP to", externalip, listenPort)
|
|
||||||
first = false
|
|
||||||
}
|
|
||||||
timer.Reset(time.Minute * 15)
|
|
||||||
case <-s.shutdownChan:
|
|
||||||
break out
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
timer.Stop()
|
|
||||||
|
|
||||||
if err := s.nat.DeletePortMapping("tcp", int(lport), int(lport)); err != nil {
|
|
||||||
log.Printf("unable to remove UPnP port mapping: %v\n", err)
|
|
||||||
} else {
|
|
||||||
log.Printf("succesfully disestablished UPnP port mapping\n")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Start the ethereum
|
// Start the ethereum
|
||||||
func (s *Ethereum) Start() {
|
func (s *Ethereum) Start() {
|
||||||
// Bind to addr and port
|
// Bind to addr and port
|
||||||
@ -267,8 +217,6 @@ func (s *Ethereum) Start() {
|
|||||||
go s.peerHandler(ln)
|
go s.peerHandler(ln)
|
||||||
}
|
}
|
||||||
|
|
||||||
go s.upnpUpdateThread()
|
|
||||||
|
|
||||||
// Start the reaping processes
|
// Start the reaping processes
|
||||||
go s.ReapDeadPeerHandler()
|
go s.ReapDeadPeerHandler()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user