diff --git a/lnd.go b/lnd.go index edae743a..88a6da79 100644 --- a/lnd.go +++ b/lnd.go @@ -26,6 +26,8 @@ import ( "sync" "time" + "github.com/NebulousLabs/go-upnp" + "gopkg.in/macaroon-bakery.v2/bakery" "golang.org/x/net/context" @@ -310,6 +312,29 @@ func lndMain() error { "is proxying over Tor as well", cfg.Tor.StreamIsolation) } + // Connect to router + d, err := upnp.Discover() + if err != nil { + fmt.Printf("Unable to discover router %v\n", err) + return err + } + + // Get external IP + ip, err := d.ExternalIP() + if err != nil { + fmt.Printf("Unable to get external ip %v\n", err) + return err + } + + ltndLog.Infof("Your external IP is: %s", ip) + + // Forward peer port + err = d.Forward(uint16(cfg.PeerPort), "lnd pear port") + if err != nil { + fmt.Printf("Unable to forward pear port ip %v\n", err) + return err + } + // Set up the core server which will listen for incoming peer // connections. server, err := newServer(