listen addresses: add Interface addresses
network.ListenAddresses() are general. Interface addresses are specific.
Juan Batiz-Benet committed
Dec 23, 2014 at 02:56 UTC
64a4abcd6cdac9aa2ce3c02bc398fd0484f89801
2 files changed
+15
-6
core/core.go
+6
-1
@@ -130,7 +130,12 @@ func NewIpfsNode(ctx context.Context, cfg *config.Config, online bool) (n *IpfsN
130
// explicitly set these as our listen addrs.
131
// (why not do it inside inet.NewNetwork? because this way we can
132
// listen on addresses without necessarily advertising those publicly.)
133
- n.Peerstore.AddAddresses(n.Identity, n.Network.ListenAddresses())
133
+ addrs, err := n.Network.InterfaceListenAddresses()
134
+ if err != nil {
135
+ return nil, debugerror.Wrap(err)
136
+ }
137
+
138
+ n.Peerstore.AddAddresses(n.Identity, addrs)
139
140
// setup diagnostics service
141
n.Diagnostics = diag.NewDiagnostics(n.Identity, n.Network)
net/id.go
+9
-5
@@ -112,12 +112,16 @@ func (ids *IDService) populateMessage(mes *pb.Handshake3, c Conn) {
112
mes.ObservedAddr = c.RemoteMultiaddr().Bytes()
113
114
// set listen addrs
115
- laddrs := ids.Network.ListenAddresses()
116
- mes.ListenAddrs = make([][]byte, len(laddrs))
117
- for i, addr := range laddrs {
118
- mes.ListenAddrs[i] = addr.Bytes()
115
+ laddrs, err := ids.Network.InterfaceListenAddresses()
116
+ if err != nil {
117
+ log.Error(err)
118
+ } else {
119
+ mes.ListenAddrs = make([][]byte, len(laddrs))
120
+ for i, addr := range laddrs {
121
+ mes.ListenAddrs[i] = addr.Bytes()
122
+ }
123
+ log.Debugf("%s sent listen addrs to %s: %s", c.LocalPeer(), c.RemotePeer(), laddrs)
124
}
120
- log.Debugf("%s sent listen addrs to %s: %s", c.LocalPeer(), c.RemotePeer(), laddrs)
125
126
// set protocol versions
127
mes.H1 = handshake.NewHandshake1("", "")