# HG changeset patch # User sqwishy # Date 1391250812 28800 # Sat Feb 01 02:33:32 2014 -0800 # Node ID 42d7e7142fc22ca4ad962af12e06a6eba8d59abe # Parent 7c8776cf52edaa73bb73c36c38b71be4264644b3 I think this puts it into one thing so it goes as a single packet ... this is probably not neccessary and should be undood diff --git a/gorcon.go b/gorcon.go --- a/gorcon.go +++ b/gorcon.go @@ -3,8 +3,8 @@ import "encoding/binary" import "fmt" import "io" +import "bytes" import "log" -import "net" var _ = fmt.Println var _ = log.Println @@ -38,12 +38,18 @@ Id: int32(0), Type: int32(cmdtype), } - if err := binary.Write(w, binary.LittleEndian, p); err != nil { + // TODO is this buffer shit neccessary? + var buf bytes.Buffer + if err := binary.Write(&buf, binary.LittleEndian, p); err != nil { return err } - if _, err := w.Write(body); err != nil { + if _, err := buf.Write(body); err != nil { return err } // 16 bits here since []byte doesn't add a terminal character - return binary.Write(w, binary.LittleEndian, int16(0)) + if err := binary.Write(&buf, binary.LittleEndian, int16(0)); err != nil { + return err + } + _, err := io.Copy(w, &buf) + return err }