From 64a4abcd6cdac9aa2ce3c02bc398fd0484f89801 Mon Sep 17 00:00:00 2001 From: Juan Batiz-Benet Date: Tue, 23 Dec 2014 02:56:19 -0800 Subject: [PATCH] listen addresses: add Interface addresses network.ListenAddresses() are general. Interface addresses are specific. --- core/core.go | 7 ++++++- net/id.go | 14 +++++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/core/core.go b/core/core.go index 16b1f2745..e19f05ea5 100644 --- a/core/core.go +++ b/core/core.go @@ -130,7 +130,12 @@ func NewIpfsNode(ctx context.Context, cfg *config.Config, online bool) (n *IpfsN // explicitly set these as our listen addrs. // (why not do it inside inet.NewNetwork? because this way we can // listen on addresses without necessarily advertising those publicly.) - n.Peerstore.AddAddresses(n.Identity, n.Network.ListenAddresses()) + addrs, err := n.Network.InterfaceListenAddresses() + if err != nil { + return nil, debugerror.Wrap(err) + } + + n.Peerstore.AddAddresses(n.Identity, addrs) // setup diagnostics service n.Diagnostics = diag.NewDiagnostics(n.Identity, n.Network) diff --git a/net/id.go b/net/id.go index 86881de40..17dc76610 100644 --- a/net/id.go +++ b/net/id.go @@ -112,12 +112,16 @@ func (ids *IDService) populateMessage(mes *pb.Handshake3, c Conn) { mes.ObservedAddr = c.RemoteMultiaddr().Bytes() // set listen addrs - laddrs := ids.Network.ListenAddresses() - mes.ListenAddrs = make([][]byte, len(laddrs)) - for i, addr := range laddrs { - mes.ListenAddrs[i] = addr.Bytes() + laddrs, err := ids.Network.InterfaceListenAddresses() + if err != nil { + log.Error(err) + } else { + mes.ListenAddrs = make([][]byte, len(laddrs)) + for i, addr := range laddrs { + mes.ListenAddrs[i] = addr.Bytes() + } + log.Debugf("%s sent listen addrs to %s: %s", c.LocalPeer(), c.RemotePeer(), laddrs) } - log.Debugf("%s sent listen addrs to %s: %s", c.LocalPeer(), c.RemotePeer(), laddrs) // set protocol versions mes.H1 = handshake.NewHandshake1("", "")