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
mf
go-multiaddr
Commits
611d2a4f
Commit
611d2a4f
authored
Sep 27, 2019
by
Steven Allen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
address CR
parent
d66032c3
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
29 additions
and
8 deletions
+29
-8
convert.go
convert.go
+18
-2
convert_test.go
convert_test.go
+11
-6
No files found.
convert.go
View file @
611d2a4f
...
...
@@ -4,6 +4,8 @@ import (
"fmt"
"net"
"path/filepath"
"runtime"
"strings"
ma
"github.com/multiformats/go-multiaddr"
)
...
...
@@ -192,7 +194,11 @@ func DialArgs(m ma.Multiaddr) (string, string, error) {
}
return
network
,
"["
+
ip
+
"]"
+
":"
+
port
,
nil
case
"unix"
:
return
network
,
filepath
.
FromSlash
(
ip
),
nil
if
runtime
.
GOOS
==
"windows"
{
// convert /c:/... to c:\...
ip
=
filepath
.
FromSlash
(
strings
.
TrimLeft
(
ip
,
"/"
))
}
return
network
,
ip
,
nil
default
:
return
""
,
""
,
fmt
.
Errorf
(
"%s is not a 'thin waist' address"
,
m
)
}
...
...
@@ -264,5 +270,15 @@ func parseUnixNetAddr(a net.Addr) (ma.Multiaddr, error) {
return
nil
,
errIncorrectNetAddr
}
return
ma
.
NewComponent
(
"unix"
,
filepath
.
ToSlash
(
ac
.
Name
))
path
:=
ac
.
Name
if
runtime
.
GOOS
==
"windows"
{
// Convert c:\foobar\... to c:/foobar/...
path
=
filepath
.
ToSlash
(
path
)
}
if
len
(
path
)
==
0
||
path
[
0
]
!=
'/'
{
// convert "" and "c:/..." to "/..."
path
=
"/"
+
path
}
return
ma
.
NewComponent
(
"unix"
,
path
)
}
convert_test.go
View file @
611d2a4f
...
...
@@ -2,6 +2,7 @@ package manet
import
(
"net"
"runtime"
"testing"
ma
"github.com/multiformats/go-multiaddr"
...
...
@@ -65,17 +66,21 @@ func TestFromIP4(t *testing.T) {
}
func
TestFromUnix
(
t
*
testing
.
T
)
{
path
:=
"/c:/foo/bar"
if
runtime
.
GOOS
==
"windows"
{
path
=
"c:
\f
oo
\b
ar"
}
testConvert
(
t
,
"/unix/c:/foo/bar"
,
func
()
(
ma
.
Multiaddr
,
error
)
{
return
FromNetAddr
(
&
net
.
UnixAddr
{
Name
:
"/c:/foo/bar"
,
Net
:
"unix"
})
})
testConvert
(
t
,
"/unix/foo/bar"
,
func
()
(
ma
.
Multiaddr
,
error
)
{
return
FromNetAddr
(
&
net
.
UnixAddr
{
Name
:
"/foo/bar"
,
Net
:
"unix"
})
return
FromNetAddr
(
&
net
.
UnixAddr
{
Name
:
path
,
Net
:
"unix"
})
})
}
func
TestToUnix
(
t
*
testing
.
T
)
{
testToNetAddr
(
t
,
"/unix/c:/foo/bar"
,
"unix"
,
"/c:/foo/bar"
)
testToNetAddr
(
t
,
"/unix/foo/bar"
,
"unix"
,
"/foo/bar"
)
path
:=
"/c:/foo/bar"
if
runtime
.
GOOS
==
"windows"
{
path
=
"c:
\f
oo
\b
ar"
}
testToNetAddr
(
t
,
"/unix/c:/foo/bar"
,
"unix"
,
path
)
}
func
TestFromIP6
(
t
*
testing
.
T
)
{
...
...
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