From 3145a06d233dfdd4a70cfc706eaaae3abfb937db Mon Sep 17 00:00:00 2001 From: Mikhail Osipov Date: Thu, 23 Jan 2020 06:24:21 +0300 Subject: fix client/server protocol --- pkg/client/client.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'pkg/client') diff --git a/pkg/client/client.go b/pkg/client/client.go index 2f0a16e..8f5fc58 100644 --- a/pkg/client/client.go +++ b/pkg/client/client.go @@ -2,8 +2,9 @@ package client import ( "tunnel/pkg/config" - "strings" + "tunnel/pkg/netstring" "errors" + "bytes" "time" "net" "io" @@ -32,10 +33,16 @@ func (c *Client) Send(args []string) (string, error) { c.conn.SetDeadline(t) }() - msg := strings.Join(args, " ") + out := new(bytes.Buffer) + enc := netstring.NewEncoder(out) + + for _, s := range args { + enc.Encode(s) + } + buf := make([]byte, config.BufSize) - _, ew := c.conn.Write([]byte(msg)) + _, ew := c.conn.Write([]byte(out.Bytes())) if ew != nil { return "", ew } -- cgit v1.2.3-70-g09d2