removed upnp

This commit is contained in:
obscuren 2014-02-02 16:29:13 +01:00
parent cb8a7d979d
commit ae0d4eb7aa

View File

@ -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()