cmd/client/main.go | 15 ++++++++++----- diff --git a/cmd/client/main.go b/cmd/client/main.go index 7ff841c8e9d553f2440ae58f3616f47d490084655a0679bb6ec238cdbe2ab3ab..fadaf51fd28367cfbed9a8468f666009e8433415a1dfffb436a083f2b60b2243 100644 --- a/cmd/client/main.go +++ b/cmd/client/main.go @@ -162,10 +162,6 @@ defer ctrl.Close() if err = ctrl.SetNoDelay(true); err != nil { log.Fatalln("nodelay:", err) } - if _, err = io.Copy(ctrl, strings.NewReader(vors.NoisePrologue)); err != nil { - log.Fatalln("handshake: write prologue", err) - return - } hs, err := noise.NewHandshakeState(noise.Config{ CipherSuite: vors.NoiseCipherSuite, @@ -181,7 +177,16 @@ buf, _, _, err := hs.WriteMessage(nil, []byte(*Name+" "+*Room+" "+*passwd)) if err != nil { log.Fatalln("handshake encrypt:", err) } - if err = vors.PktWrite(ctrl, buf); err != nil { + buf = append( + append( + []byte(vors.NoisePrologue), + byte((len(buf) & 0xFF00) >> 8), + byte((len(buf) & 0x00FF) >> 0), + ), + buf... + ) + _, err = io.Copy(ctrl, bytes.NewReader(buf)) + if err != nil { log.Fatalln("write handshake:", err) return }