aboutsummaryrefslogtreecommitdiffstats
path: root/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'cmd')
-rw-r--r--cmd/peerserver/main.go17
1 files changed, 15 insertions, 2 deletions
diff --git a/cmd/peerserver/main.go b/cmd/peerserver/main.go
index 7a5d5708e..341c4dbb9 100644
--- a/cmd/peerserver/main.go
+++ b/cmd/peerserver/main.go
@@ -18,6 +18,7 @@ package main
import (
"crypto/elliptic"
+ "flag"
"log"
"os"
@@ -26,7 +27,19 @@ import (
"github.com/ethereum/go-ethereum/p2p"
)
+var (
+ natType = flag.String("nat", "", "NAT traversal implementation")
+ pmpGateway = flag.String("gateway", "", "gateway address for NAT-PMP")
+ listenAddr = flag.String("addr", ":30301", "listen address")
+)
+
func main() {
+ flag.Parse()
+ nat, err := p2p.ParseNAT(*natType, *pmpGateway)
+ if err != nil {
+ log.Fatal("invalid nat:", err)
+ }
+
logger.AddLogSystem(logger.NewStdLogSystem(os.Stdout, log.LstdFlags, logger.InfoLevel))
key, _ := crypto.GenerateKey()
marshaled := elliptic.Marshal(crypto.S256(), key.PublicKey.X, key.PublicKey.Y)
@@ -34,8 +47,8 @@ func main() {
srv := p2p.Server{
MaxPeers: 100,
Identity: p2p.NewSimpleClientIdentity("Ethereum(G)", "0.1", "Peer Server Two", marshaled),
- ListenAddr: ":30301",
- NAT: p2p.UPNP(),
+ ListenAddr: *listenAddr,
+ NAT: nat,
NoDial: true,
}
if err := srv.Start(); err != nil {