Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
p2p
go-p2p-core
Commits
a1593a6d
Unverified
Commit
a1593a6d
authored
May 31, 2019
by
Steven Allen
Committed by
GitHub
May 31, 2019
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #14 from libp2p/chore/cleanup-addr-parsing
chore: cleanup address parsing
parents
456893a5
ecce2522
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
15 additions
and
31 deletions
+15
-31
peer/addrinfo.go
peer/addrinfo.go
+15
-31
No files found.
peer/addrinfo.go
View file @
a1593a6d
...
...
@@ -2,7 +2,6 @@ package peer
import
(
"fmt"
"strings"
ma
"github.com/multiformats/go-multiaddr"
)
...
...
@@ -27,47 +26,32 @@ func AddrInfoFromP2pAddr(m ma.Multiaddr) (*AddrInfo, error) {
return
nil
,
ErrInvalidAddr
}
// make sure it's a P2P addr
parts
:=
ma
.
Split
(
m
)
if
len
(
parts
)
<
1
{
transport
,
p2ppart
:=
ma
.
SplitLast
(
m
)
if
p2ppart
==
nil
||
p2ppart
.
Protocol
()
.
Code
!=
ma
.
P_P2P
{
return
nil
,
ErrInvalidAddr
}
// TODO(lgierth): we shouldn't assume /p2p is the last part
p2ppart
:=
parts
[
len
(
parts
)
-
1
]
if
p2ppart
.
Protocols
()[
0
]
.
Code
!=
ma
.
P_P2P
{
return
nil
,
ErrInvalidAddr
}
// make sure the /p2p value parses as a peer.ID
peerIdParts
:=
strings
.
Split
(
p2ppart
.
String
(),
"/"
)
peerIdStr
:=
peerIdParts
[
len
(
peerIdParts
)
-
1
]
id
,
err
:=
IDB58Decode
(
peerIdStr
)
id
,
err
:=
IDFromBytes
(
p2ppart
.
RawValue
())
if
err
!=
nil
{
return
nil
,
err
}
// we might have received just an /p2p part, which means there's no addr.
var
addrs
[]
ma
.
Multiaddr
if
len
(
parts
)
>
1
{
addrs
=
append
(
addrs
,
ma
.
Join
(
parts
[
:
len
(
parts
)
-
1
]
...
))
info
:=
&
AddrInfo
{
ID
:
id
}
if
transport
!=
nil
{
info
.
Addrs
=
[]
ma
.
Multiaddr
{
transport
}
}
return
&
AddrInfo
{
ID
:
id
,
Addrs
:
addrs
,
},
nil
return
info
,
nil
}
func
AddrInfoToP2pAddrs
(
pi
*
AddrInfo
)
([]
ma
.
Multiaddr
,
error
)
{
var
addrs
[]
ma
.
Multiaddr
tpl
:=
"/"
+
ma
.
ProtocolWithCode
(
ma
.
P_P2P
)
.
Name
+
"/"
p2ppart
,
err
:=
ma
.
NewComponent
(
"p2p"
,
IDB58Encode
(
pi
.
ID
))
if
err
!=
nil
{
return
nil
,
err
}
if
len
(
pi
.
Addrs
)
==
0
{
return
[]
ma
.
Multiaddr
{
p2ppart
},
nil
}
for
_
,
addr
:=
range
pi
.
Addrs
{
p2paddr
,
err
:=
ma
.
NewMultiaddr
(
tpl
+
IDB58Encode
(
pi
.
ID
))
if
err
!=
nil
{
return
nil
,
err
}
addrs
=
append
(
addrs
,
addr
.
Encapsulate
(
p2paddr
))
addrs
=
append
(
addrs
,
addr
.
Encapsulate
(
p2ppart
))
}
return
addrs
,
nil
}
...
...
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