diff --git a/conn.go b/conn.go index 33b9d94..f3744d3 100644 --- a/conn.go +++ b/conn.go @@ -79,12 +79,7 @@ func (c *Conn) untagHop() { // TODO: is it okay to cast c.Conn().RemotePeer() into a multiaddr? might be "user input" func (c *Conn) RemoteMultiaddr() ma.Multiaddr { - proto := ma.ProtocolWithCode(ma.P_P2P).Name - peerid := c.stream.Conn().RemotePeer().Pretty() - p2paddr := ma.StringCast(fmt.Sprintf("/%s/%s", proto, peerid)) - - circaddr := ma.Cast(ma.CodeToVarint(P_CIRCUIT)) - return p2paddr.Encapsulate(circaddr) + return c.stream.Conn().RemoteMultiaddr().Encapsulate(circuitAddr) } func (c *Conn) LocalMultiaddr() ma.Multiaddr { diff --git a/go.mod b/go.mod index bfca879..4e23cb4 100644 --- a/go.mod +++ b/go.mod @@ -15,3 +15,5 @@ require ( github.com/multiformats/go-multiaddr v0.0.4 github.com/multiformats/go-multiaddr-net v0.0.1 ) + +go 1.12 diff --git a/listen.go b/listen.go index b00015b..2f0e60c 100644 --- a/listen.go +++ b/listen.go @@ -50,7 +50,7 @@ func (l *RelayListener) Addr() net.Addr { } func (l *RelayListener) Multiaddr() ma.Multiaddr { - return ma.Cast(ma.CodeToVarint(P_CIRCUIT)) + return circuitAddr } func (l *RelayListener) Close() error { diff --git a/transport.go b/transport.go index 86821d3..7724a22 100644 --- a/transport.go +++ b/transport.go @@ -19,6 +19,8 @@ var Protocol = ma.Protocol{ VCode: ma.CodeToVarint(P_CIRCUIT), } +var circuitAddr ma.Multiaddr = ma.Cast(Protocol.VCode) + func init() { ma.AddProtocol(Protocol) }