diff options
Diffstat (limited to 'libgo/go/websocket/server.go')
-rw-r--r-- | libgo/go/websocket/server.go | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/libgo/go/websocket/server.go b/libgo/go/websocket/server.go index 9420c47191d..57dc4fd1dff 100644 --- a/libgo/go/websocket/server.go +++ b/libgo/go/websocket/server.go @@ -7,8 +7,8 @@ package websocket import ( "bufio" "fmt" - "http" "io" + "net/http" ) func newServerConn(rwc io.ReadWriteCloser, buf *bufio.ReadWriter, req *http.Request) (conn *Conn, err error) { @@ -20,6 +20,7 @@ func newServerConn(rwc io.ReadWriteCloser, buf *bufio.ReadWriter, req *http.Requ fmt.Fprintf(buf, "Sec-WebSocket-Version: %s\r\n", SupportedProtocolVersion) buf.WriteString("\r\n") buf.WriteString(err.Error()) + buf.Flush() return } if err != nil { @@ -34,12 +35,17 @@ func newServerConn(rwc io.ReadWriteCloser, buf *bufio.ReadWriter, req *http.Requ fmt.Fprintf(buf, "HTTP/1.1 %03d %s\r\n", code, http.StatusText(code)) buf.WriteString("\r\n") buf.WriteString(err.Error()) + buf.Flush() return } config.Protocol = nil err = hs.AcceptHandshake(buf.Writer) if err != nil { + code = http.StatusBadRequest + fmt.Fprintf(buf, "HTTP/1.1 %03d %s\r\n", code, http.StatusText(code)) + buf.WriteString("\r\n") + buf.Flush() return } conn = hs.NewServerConn(buf, rwc, req) |