Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
go-libp2p
Commits
9058b771
Commit
9058b771
authored
May 01, 2015
by
Juan Batiz-Benet
Browse files
Merge pull request #1165 from ipfs/fix/mdns-addr
advertise multiple addresses over mdns
parents
f62ab58c
a8041e64
Changes
1
Hide whitespace changes
Inline
Side-by-side
discovery/mdns.go
View file @
9058b771
...
...
@@ -42,7 +42,8 @@ type mdnsService struct {
interval
time
.
Duration
}
func
getDialableListenAddr
(
ph
host
.
Host
)
(
*
net
.
TCPAddr
,
error
)
{
func
getDialableListenAddrs
(
ph
host
.
Host
)
([]
*
net
.
TCPAddr
,
error
)
{
var
out
[]
*
net
.
TCPAddr
for
_
,
addr
:=
range
ph
.
Addrs
()
{
na
,
err
:=
manet
.
ToNetAddr
(
addr
)
if
err
!=
nil
{
...
...
@@ -50,10 +51,13 @@ func getDialableListenAddr(ph host.Host) (*net.TCPAddr, error) {
}
tcp
,
ok
:=
na
.
(
*
net
.
TCPAddr
)
if
ok
{
return
tcp
,
nil
out
=
append
(
out
,
tcp
)
}
}
return
nil
,
errors
.
New
(
"failed to find good external addr from peerhost"
)
if
len
(
out
)
==
0
{
return
nil
,
errors
.
New
(
"failed to find good external addr from peerhost"
)
}
return
out
,
nil
}
func
NewMdnsService
(
peerhost
host
.
Host
,
interval
time
.
Duration
)
(
Service
,
error
)
{
...
...
@@ -64,12 +68,14 @@ func NewMdnsService(peerhost host.Host, interval time.Duration) (Service, error)
var
ipaddrs
[]
net
.
IP
port
:=
4001
addr
,
err
:=
getDialableListenAddr
(
peerhost
)
addr
s
,
err
:=
getDialableListenAddr
s
(
peerhost
)
if
err
!=
nil
{
log
.
Warning
(
err
)
}
else
{
ipaddrs
=
[]
net
.
IP
{
addr
.
IP
}
port
=
addr
.
Port
port
=
addrs
[
0
]
.
Port
for
_
,
a
:=
range
addrs
{
ipaddrs
=
append
(
ipaddrs
,
a
.
IP
)
}
}
myid
:=
peerhost
.
ID
()
.
Pretty
()
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment