diff --git a/Makefile b/Makefile index 57637fb..5626e8f 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ USER_GH=eyedeekay -VERSION=0.32.4 +VERSION=0.32.5 packagename=gosam echo: fmt diff --git a/accept.go b/accept.go index d3ecb0c..6f0dd5b 100644 --- a/accept.go +++ b/accept.go @@ -28,13 +28,21 @@ func (c *Client) ListenI2P(dest string) (net.Listener, error) { if err != nil { return nil, err } + + if c.d == nil { + c.d, err = c.NewClient(c.NewID()) + if err != nil { + return nil, err + } + } + fmt.Println("Listening on destination:", c.Base32()+".b32.i2p") if c.debug { c.SamConn = WrapConn(c.SamConn) } - return c, nil + return c.d, nil } // Accept accepts a connection on a listening goSam.Client(Implements net.Listener) diff --git a/client.go b/client.go index 4716e45..8995bf8 100644 --- a/client.go +++ b/client.go @@ -24,9 +24,10 @@ type Client struct { fromport string toport string - SamConn net.Conn - SamDGConn DatagramConn + SamConn net.Conn // Control socket + SamDGConn DatagramConn // Datagram socket rd *bufio.Reader + d *Client sigType string destination string diff --git a/dial.go b/dial.go index 97014fd..9e8355b 100644 --- a/dial.go +++ b/dial.go @@ -76,10 +76,16 @@ func (c *Client) DialStreamingContextFree(addr string) (net.Conn, error) { return nil, err } } + if c.d == nil { + c.d, err = c.NewClient(c.NewID()) + if err != nil { + return nil, err + } + } - err = c.StreamConnect(addr) + err = c.d.StreamConnect(addr) if err != nil { return nil, err } - return c.SamConn, nil + return c.d.SamConn, nil }