@@ -4,6 +4,11 @@ import (
44 "bytes"
55 "context"
66 "fmt"
7+ "log"
8+ "os"
9+ "path"
10+ "strconv"
11+
712 dsb "github.com/ipfs/go-ds-badger"
813 logging "github.com/ipfs/go-log"
914 p2p "github.com/libp2p/go-libp2p"
@@ -23,12 +28,8 @@ import (
2328 mdns "github.com/libp2p/go-libp2p/p2p/discovery"
2429 tcp "github.com/libp2p/go-tcp-transport"
2530 ws "github.com/libp2p/go-ws-transport"
26- "github.com/multiformats/go-multiaddr"
31+ ma "github.com/multiformats/go-multiaddr"
2732 "golang.org/x/crypto/blake2b"
28- "log"
29- "os"
30- "path"
31- "strconv"
3233)
3334
3435// Helper contains all the daemon state
@@ -61,7 +62,7 @@ func (cv customValidator) Select(key string, values [][]byte) (int, error) {
6162// TODO: just put this into main.go?
6263
6364// MakeHelper does all the initialization to run one host
64- func MakeHelper (ctx context.Context , listenOn []multiaddr .Multiaddr , statedir string , pk crypto.PrivKey , networkID string ) (* Helper , error ) {
65+ func MakeHelper (ctx context.Context , listenOn []ma. Multiaddr , externalAddr ma .Multiaddr , statedir string , pk crypto.PrivKey , networkID string ) (* Helper , error ) {
6566 logger := logging .Logger ("codanet.Helper" )
6667 dso := dsb .DefaultOptions
6768
@@ -108,6 +109,11 @@ func MakeHelper(ctx context.Context, listenOn []multiaddr.Multiaddr, statedir st
108109 p2p .Peerstore (ps ),
109110 p2p .DisableRelay (),
110111 p2p .ListenAddrs (listenOn ... ),
112+ p2p .AddrsFactory (func (as []ma.Multiaddr ) []ma.Multiaddr {
113+ as = append (as , externalAddr )
114+ return as
115+ }),
116+ p2p .NATPortMap (),
111117 p2p .Routing (
112118 p2pconfig .RoutingC (func (host host.Host ) (routing.PeerRouting , error ) {
113119 kad , err := kad .New (ctx , host , kadopts .Datastore (dsDht ), kadopts .Validator (rv ))
0 commit comments