From d66032c34030b6f9582b5b01ba63b5b294f2c7ae Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Thu, 19 Sep 2019 08:59:17 -0700 Subject: [PATCH] fix unix path handling on windows * Convert to windows paths when converting from a multiaddr to a net.Addr * Convert from windows paths when converting from a net.Addr to a multiaddr Also, don't "clean". `filepath.Clean` is _usually_ correct but not _technically_ correct in all cases. We should leave cleaning to the application. --- convert.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/convert.go b/convert.go index b1e5446..1f936e6 100644 --- a/convert.go +++ b/convert.go @@ -192,7 +192,7 @@ func DialArgs(m ma.Multiaddr) (string, string, error) { } return network, "[" + ip + "]" + ":" + port, nil case "unix": - return network, ip, nil + return network, filepath.FromSlash(ip), nil default: return "", "", fmt.Errorf("%s is not a 'thin waist' address", m) } @@ -263,6 +263,6 @@ func parseUnixNetAddr(a net.Addr) (ma.Multiaddr, error) { if !ok { return nil, errIncorrectNetAddr } - cleaned := filepath.Clean(ac.Name) - return ma.NewComponent("unix", cleaned) + + return ma.NewComponent("unix", filepath.ToSlash(ac.Name)) }