diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2011-12-03 02:17:34 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2011-12-03 02:17:34 +0000 |
commit | 2fd401c8f190f1fe43e51a7f726f6ed6119a1f96 (patch) | |
tree | 7f76eff391f37fe6467ff4ffbc0c582c9959ea30 /libgo/go/websocket | |
parent | 02e9018f1616b23f1276151797216717b3564202 (diff) | |
download | gcc-2fd401c8f190f1fe43e51a7f726f6ed6119a1f96.zip gcc-2fd401c8f190f1fe43e51a7f726f6ed6119a1f96.tar.gz gcc-2fd401c8f190f1fe43e51a7f726f6ed6119a1f96.tar.bz2 |
libgo: Update to weekly.2011-11-02.
From-SVN: r181964
Diffstat (limited to 'libgo/go/websocket')
-rw-r--r-- | libgo/go/websocket/client.go | 15 | ||||
-rw-r--r-- | libgo/go/websocket/hixie.go | 39 | ||||
-rw-r--r-- | libgo/go/websocket/hixie_test.go | 6 | ||||
-rw-r--r-- | libgo/go/websocket/hybi.go | 33 | ||||
-rw-r--r-- | libgo/go/websocket/hybi_test.go | 14 | ||||
-rw-r--r-- | libgo/go/websocket/server.go | 9 | ||||
-rw-r--r-- | libgo/go/websocket/websocket.go | 44 | ||||
-rw-r--r-- | libgo/go/websocket/websocket_test.go | 2 |
8 files changed, 79 insertions, 83 deletions
diff --git a/libgo/go/websocket/client.go b/libgo/go/websocket/client.go index b7eaafd..3da39a0 100644 --- a/libgo/go/websocket/client.go +++ b/libgo/go/websocket/client.go @@ -9,22 +9,21 @@ import ( "crypto/tls" "io" "net" - "os" "url" ) // DialError is an error that occurs while dialling a websocket server. type DialError struct { *Config - Error os.Error + Err error } -func (e *DialError) String() string { - return "websocket.Dial " + e.Config.Location.String() + ": " + e.Error.String() +func (e *DialError) Error() string { + return "websocket.Dial " + e.Config.Location.String() + ": " + e.Err.Error() } // NewConfig creates a new WebSocket config for client connection. -func NewConfig(server, origin string) (config *Config, err os.Error) { +func NewConfig(server, origin string) (config *Config, err error) { config = new(Config) config.Version = ProtocolVersionHybi13 config.Location, err = url.ParseRequest(server) @@ -39,7 +38,7 @@ func NewConfig(server, origin string) (config *Config, err os.Error) { } // NewClient creates a new WebSocket client connection over rwc. -func NewClient(config *Config, rwc io.ReadWriteCloser) (ws *Conn, err os.Error) { +func NewClient(config *Config, rwc io.ReadWriteCloser) (ws *Conn, err error) { br := bufio.NewReader(rwc) bw := bufio.NewWriter(rwc) switch config.Version { @@ -96,7 +95,7 @@ A trivial example client: // use msg[0:n] } */ -func Dial(url_, protocol, origin string) (ws *Conn, err os.Error) { +func Dial(url_, protocol, origin string) (ws *Conn, err error) { config, err := NewConfig(url_, origin) if err != nil { return nil, err @@ -105,7 +104,7 @@ func Dial(url_, protocol, origin string) (ws *Conn, err os.Error) { } // DialConfig opens a new client connection to a WebSocket with a config. -func DialConfig(config *Config) (ws *Conn, err os.Error) { +func DialConfig(config *Config) (ws *Conn, err error) { var client net.Conn if config.Location == nil { return nil, &DialError{config, ErrBadWebSocketLocation} diff --git a/libgo/go/websocket/hixie.go b/libgo/go/websocket/hixie.go index 841ff3c..63eebc9 100644 --- a/libgo/go/websocket/hixie.go +++ b/libgo/go/websocket/hixie.go @@ -16,7 +16,6 @@ import ( "http" "io" "io/ioutil" - "os" "rand" "strconv" "strings" @@ -42,14 +41,14 @@ func init() { } type byteReader interface { - ReadByte() (byte, os.Error) + ReadByte() (byte, error) } // readHixieLength reads frame length for frame type 0x80-0xFF // as defined in Hixie draft. // See section 4.2 Data framing. // http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-00#section-4.2 -func readHixieLength(r byteReader) (length int64, lengthFields []byte, err os.Error) { +func readHixieLength(r byteReader) (length int64, lengthFields []byte, err error) { for { c, err := r.ReadByte() if err != nil { @@ -74,7 +73,7 @@ type hixieLengthFrameReader struct { length int } -func (frame *hixieLengthFrameReader) Read(msg []byte) (n int, err os.Error) { +func (frame *hixieLengthFrameReader) Read(msg []byte) (n int, err error) { return frame.reader.Read(msg) } @@ -111,10 +110,10 @@ type hixieSentinelFrameReader struct { trailer *bytes.Buffer } -func (frame *hixieSentinelFrameReader) Read(msg []byte) (n int, err os.Error) { +func (frame *hixieSentinelFrameReader) Read(msg []byte) (n int, err error) { if len(frame.data) == 0 { if frame.seenTrailer { - return 0, os.EOF + return 0, io.EOF } frame.data, err = frame.reader.ReadSlice('\xff') if err == nil { @@ -164,7 +163,7 @@ type hixieFrameReaderFactory struct { *bufio.Reader } -func (buf hixieFrameReaderFactory) NewFrameReader() (r frameReader, err os.Error) { +func (buf hixieFrameReaderFactory) NewFrameReader() (r frameReader, err error) { var header []byte var b byte b, err = buf.ReadByte() @@ -178,7 +177,7 @@ func (buf hixieFrameReaderFactory) NewFrameReader() (r frameReader, err os.Error return nil, err } if length == 0 { - return nil, os.EOF + return nil, io.EOF } header = append(header, lengthFields...) return &hixieLengthFrameReader{ @@ -197,7 +196,7 @@ type hixiFrameWriter struct { writer *bufio.Writer } -func (frame *hixiFrameWriter) Write(msg []byte) (n int, err os.Error) { +func (frame *hixiFrameWriter) Write(msg []byte) (n int, err error) { frame.writer.WriteByte(0) frame.writer.Write(msg) frame.writer.WriteByte(0xff) @@ -205,13 +204,13 @@ func (frame *hixiFrameWriter) Write(msg []byte) (n int, err os.Error) { return len(msg), err } -func (frame *hixiFrameWriter) Close() os.Error { return nil } +func (frame *hixiFrameWriter) Close() error { return nil } type hixiFrameWriterFactory struct { *bufio.Writer } -func (buf hixiFrameWriterFactory) NewFrameWriter(payloadType byte) (frame frameWriter, err os.Error) { +func (buf hixiFrameWriterFactory) NewFrameWriter(payloadType byte) (frame frameWriter, err error) { if payloadType != TextFrame { return nil, ErrNotSupported } @@ -222,7 +221,7 @@ type hixiFrameHandler struct { conn *Conn } -func (handler *hixiFrameHandler) HandleFrame(frame frameReader) (r frameReader, err os.Error) { +func (handler *hixiFrameHandler) HandleFrame(frame frameReader) (r frameReader, err error) { if header := frame.HeaderReader(); header != nil { io.Copy(ioutil.Discard, header) } @@ -233,7 +232,7 @@ func (handler *hixiFrameHandler) HandleFrame(frame frameReader) (r frameReader, return frame, nil } -func (handler *hixiFrameHandler) WriteClose(_ int) (err os.Error) { +func (handler *hixiFrameHandler) WriteClose(_ int) (err error) { handler.conn.wio.Lock() defer handler.conn.wio.Unlock() closingFrame := []byte{'\xff', '\x00'} @@ -259,7 +258,7 @@ func newHixieConn(config *Config, buf *bufio.ReadWriter, rwc io.ReadWriteCloser, // getChallengeResponse computes the expected response from the // challenge as described in section 5.1 Opening Handshake steps 42 to // 43 of http://www.whatwg.org/specs/web-socket-protocol/ -func getChallengeResponse(number1, number2 uint32, key3 []byte) (expected []byte, err os.Error) { +func getChallengeResponse(number1, number2 uint32, key3 []byte) (expected []byte, err error) { // 41. Let /challenge/ be the concatenation of /number_1/, expressed // a big-endian 32 bit integer, /number_2/, expressed in a big- // endian 32 bit integer, and the eight bytes of /key_3/ in the @@ -336,7 +335,7 @@ func generateKey3() (key []byte) { // Cilent handhake described in (soon obsolete) // draft-ietf-hybi-thewebsocket-protocol-00 // (draft-hixie-thewebsocket-protocol-76) -func hixie76ClientHandshake(config *Config, br *bufio.Reader, bw *bufio.Writer) (err os.Error) { +func hixie76ClientHandshake(config *Config, br *bufio.Reader, bw *bufio.Writer) (err error) { switch config.Version { case ProtocolVersionHixie76, ProtocolVersionHybi00: default: @@ -453,7 +452,7 @@ func hixie76ClientHandshake(config *Config, br *bufio.Reader, bw *bufio.Writer) // Client Handshake described in (soon obsolete) // draft-hixie-thewebsocket-protocol-75. -func hixie75ClientHandshake(config *Config, br *bufio.Reader, bw *bufio.Writer) (err os.Error) { +func hixie75ClientHandshake(config *Config, br *bufio.Reader, bw *bufio.Writer) (err error) { if config.Version != ProtocolVersionHixie75 { panic("wrong protocol version.") } @@ -521,7 +520,7 @@ type hixie76ServerHandshaker struct { challengeResponse []byte } -func (c *hixie76ServerHandshaker) ReadHandshake(buf *bufio.Reader, req *http.Request) (code int, err os.Error) { +func (c *hixie76ServerHandshaker) ReadHandshake(buf *bufio.Reader, req *http.Request) (code int, err error) { c.Version = ProtocolVersionHybi00 if req.Method != "GET" { return http.StatusMethodNotAllowed, ErrBadRequestMethod @@ -598,7 +597,7 @@ func (c *hixie76ServerHandshaker) ReadHandshake(buf *bufio.Reader, req *http.Req return http.StatusSwitchingProtocols, nil } -func (c *hixie76ServerHandshaker) AcceptHandshake(buf *bufio.Writer) (err os.Error) { +func (c *hixie76ServerHandshaker) AcceptHandshake(buf *bufio.Writer) (err error) { if len(c.Protocol) > 0 { if len(c.Protocol) != 1 { return ErrBadWebSocketProtocol @@ -632,7 +631,7 @@ type hixie75ServerHandshaker struct { *Config } -func (c *hixie75ServerHandshaker) ReadHandshake(buf *bufio.Reader, req *http.Request) (code int, err os.Error) { +func (c *hixie75ServerHandshaker) ReadHandshake(buf *bufio.Reader, req *http.Request) (code int, err error) { c.Version = ProtocolVersionHixie75 if req.Method != "GET" || req.Proto != "HTTP/1.1" { return http.StatusMethodNotAllowed, ErrBadRequestMethod @@ -667,7 +666,7 @@ func (c *hixie75ServerHandshaker) ReadHandshake(buf *bufio.Reader, req *http.Req return http.StatusSwitchingProtocols, nil } -func (c *hixie75ServerHandshaker) AcceptHandshake(buf *bufio.Writer) (err os.Error) { +func (c *hixie75ServerHandshaker) AcceptHandshake(buf *bufio.Writer) (err error) { if len(c.Protocol) > 0 { if len(c.Protocol) != 1 { return ErrBadWebSocketProtocol diff --git a/libgo/go/websocket/hixie_test.go b/libgo/go/websocket/hixie_test.go index 98a0de4..40cb53f 100644 --- a/libgo/go/websocket/hixie_test.go +++ b/libgo/go/websocket/hixie_test.go @@ -9,7 +9,7 @@ import ( "bytes" "fmt" "http" - "os" + "io" "strings" "testing" "url" @@ -46,7 +46,7 @@ Sec-WebSocket-Protocol: sample 8jKS'y:G*Co,Wxa-`)) - var err os.Error + var err error config := new(Config) config.Location, err = url.ParseRequest("ws://example.com/demo") if err != nil { @@ -195,7 +195,7 @@ func TestHixie76ClosingFrame(t *testing.T) { t.Errorf("Read: expected %q got %q", b[1:6], msg[0:n]) } n, err = ws.Read(msg) - if err != os.EOF { + if err != io.EOF { t.Errorf("read: %v", err) } } diff --git a/libgo/go/websocket/hybi.go b/libgo/go/websocket/hybi.go index fe08b3d..d3d4258 100644 --- a/libgo/go/websocket/hybi.go +++ b/libgo/go/websocket/hybi.go @@ -18,7 +18,6 @@ import ( "http" "io" "io/ioutil" - "os" "strings" "url" ) @@ -69,7 +68,7 @@ type hybiFrameReader struct { length int } -func (frame *hybiFrameReader) Read(msg []byte) (n int, err os.Error) { +func (frame *hybiFrameReader) Read(msg []byte) (n int, err error) { n, err = frame.reader.Read(msg) if err != nil { return 0, err @@ -107,7 +106,7 @@ type hybiFrameReaderFactory struct { // NewFrameReader reads a frame header from the connection, and creates new reader for the frame. // See Section 5.2 Base Frameing protocol for detail. // http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-17#section-5.2 -func (buf hybiFrameReaderFactory) NewFrameReader() (frame frameReader, err os.Error) { +func (buf hybiFrameReaderFactory) NewFrameReader() (frame frameReader, err error) { hybiFrame := new(hybiFrameReader) frame = hybiFrame var header []byte @@ -174,7 +173,7 @@ type hybiFrameWriter struct { header *hybiFrameHeader } -func (frame *hybiFrameWriter) Write(msg []byte) (n int, err os.Error) { +func (frame *hybiFrameWriter) Write(msg []byte) (n int, err error) { var header []byte var b byte if frame.header.Fin { @@ -232,14 +231,14 @@ func (frame *hybiFrameWriter) Write(msg []byte) (n int, err os.Error) { return length, err } -func (frame *hybiFrameWriter) Close() os.Error { return nil } +func (frame *hybiFrameWriter) Close() error { return nil } type hybiFrameWriterFactory struct { *bufio.Writer needMaskingKey bool } -func (buf hybiFrameWriterFactory) NewFrameWriter(payloadType byte) (frame frameWriter, err os.Error) { +func (buf hybiFrameWriterFactory) NewFrameWriter(payloadType byte) (frame frameWriter, err error) { frameHeader := &hybiFrameHeader{Fin: true, OpCode: payloadType} if buf.needMaskingKey { frameHeader.MaskingKey, err = generateMaskingKey() @@ -255,18 +254,18 @@ type hybiFrameHandler struct { payloadType byte } -func (handler *hybiFrameHandler) HandleFrame(frame frameReader) (r frameReader, err os.Error) { +func (handler *hybiFrameHandler) HandleFrame(frame frameReader) (r frameReader, err error) { if handler.conn.IsServerConn() { // The client MUST mask all frames sent to the server. if frame.(*hybiFrameReader).header.MaskingKey == nil { handler.WriteClose(closeStatusProtocolError) - return nil, os.EOF + return nil, io.EOF } } else { // The server MUST NOT mask all frames. if frame.(*hybiFrameReader).header.MaskingKey != nil { handler.WriteClose(closeStatusProtocolError) - return nil, os.EOF + return nil, io.EOF } } if header := frame.HeaderReader(); header != nil { @@ -278,7 +277,7 @@ func (handler *hybiFrameHandler) HandleFrame(frame frameReader) (r frameReader, case TextFrame, BinaryFrame: handler.payloadType = frame.PayloadType() case CloseFrame: - return nil, os.EOF + return nil, io.EOF case PingFrame: pingMsg := make([]byte, maxControlFramePayloadLength) n, err := io.ReadFull(frame, pingMsg) @@ -297,7 +296,7 @@ func (handler *hybiFrameHandler) HandleFrame(frame frameReader) (r frameReader, return frame, nil } -func (handler *hybiFrameHandler) WriteClose(status int) (err os.Error) { +func (handler *hybiFrameHandler) WriteClose(status int) (err error) { handler.conn.wio.Lock() defer handler.conn.wio.Unlock() w, err := handler.conn.frameWriterFactory.NewFrameWriter(CloseFrame) @@ -311,7 +310,7 @@ func (handler *hybiFrameHandler) WriteClose(status int) (err os.Error) { return err } -func (handler *hybiFrameHandler) WritePong(msg []byte) (n int, err os.Error) { +func (handler *hybiFrameHandler) WritePong(msg []byte) (n int, err error) { handler.conn.wio.Lock() defer handler.conn.wio.Unlock() w, err := handler.conn.frameWriterFactory.NewFrameWriter(PongFrame) @@ -341,7 +340,7 @@ func newHybiConn(config *Config, buf *bufio.ReadWriter, rwc io.ReadWriteCloser, } // generateMaskingKey generates a masking key for a frame. -func generateMaskingKey() (maskingKey []byte, err os.Error) { +func generateMaskingKey() (maskingKey []byte, err error) { maskingKey = make([]byte, 4) if _, err = io.ReadFull(rand.Reader, maskingKey); err != nil { return @@ -363,7 +362,7 @@ func generateNonce() (nonce []byte) { // getNonceAccept computes the base64-encoded SHA-1 of the concatenation of // the nonce ("Sec-WebSocket-Key" value) with the websocket GUID string. -func getNonceAccept(nonce []byte) (expected []byte, err os.Error) { +func getNonceAccept(nonce []byte) (expected []byte, err error) { h := sha1.New() if _, err = h.Write(nonce); err != nil { return @@ -386,7 +385,7 @@ func isHybiVersion(version int) bool { } // Client handhake described in draft-ietf-hybi-thewebsocket-protocol-17 -func hybiClientHandshake(config *Config, br *bufio.Reader, bw *bufio.Writer) (err os.Error) { +func hybiClientHandshake(config *Config, br *bufio.Reader, bw *bufio.Writer) (err error) { if !isHybiVersion(config.Version) { panic("wrong protocol version.") } @@ -468,7 +467,7 @@ type hybiServerHandshaker struct { accept []byte } -func (c *hybiServerHandshaker) ReadHandshake(buf *bufio.Reader, req *http.Request) (code int, err os.Error) { +func (c *hybiServerHandshaker) ReadHandshake(buf *bufio.Reader, req *http.Request) (code int, err error) { c.Version = ProtocolVersionHybi13 if req.Method != "GET" { return http.StatusMethodNotAllowed, ErrBadRequestMethod @@ -522,7 +521,7 @@ func (c *hybiServerHandshaker) ReadHandshake(buf *bufio.Reader, req *http.Reques return http.StatusSwitchingProtocols, nil } -func (c *hybiServerHandshaker) AcceptHandshake(buf *bufio.Writer) (err os.Error) { +func (c *hybiServerHandshaker) AcceptHandshake(buf *bufio.Writer) (err error) { if len(c.Protocol) > 0 { if len(c.Protocol) != 1 { return ErrBadWebSocketProtocol diff --git a/libgo/go/websocket/hybi_test.go b/libgo/go/websocket/hybi_test.go index 9db57e3..df0f555 100644 --- a/libgo/go/websocket/hybi_test.go +++ b/libgo/go/websocket/hybi_test.go @@ -9,7 +9,7 @@ import ( "bytes" "fmt" "http" - "os" + "io" "strings" "testing" "url" @@ -40,7 +40,7 @@ Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo= Sec-WebSocket-Protocol: chat `)) - var err os.Error + var err error config := new(Config) config.Location, err = url.ParseRequest("ws://server.example.com/chat") if err != nil { @@ -102,7 +102,7 @@ Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo= Sec-WebSocket-Protocol: chat `)) - var err os.Error + var err error config := new(Config) config.Location, err = url.ParseRequest("ws://server.example.com/chat") if err != nil { @@ -513,8 +513,8 @@ func TestHybiServerReadWithoutMasking(t *testing.T) { // server MUST close the connection upon receiving a non-masked frame. msg := make([]byte, 512) _, err := conn.Read(msg) - if err != os.EOF { - t.Errorf("read 1st frame, expect %q, but got %q", os.EOF, err) + if err != io.EOF { + t.Errorf("read 1st frame, expect %q, but got %q", io.EOF, err) } } @@ -529,8 +529,8 @@ func TestHybiClientReadWithMasking(t *testing.T) { // client MUST close the connection upon receiving a masked frame. msg := make([]byte, 512) _, err := conn.Read(msg) - if err != os.EOF { - t.Errorf("read 1st frame, expect %q, but got %q", os.EOF, err) + if err != io.EOF { + t.Errorf("read 1st frame, expect %q, but got %q", io.EOF, err) } } diff --git a/libgo/go/websocket/server.go b/libgo/go/websocket/server.go index a1d1d48..9420c47 100644 --- a/libgo/go/websocket/server.go +++ b/libgo/go/websocket/server.go @@ -9,10 +9,9 @@ import ( "fmt" "http" "io" - "os" ) -func newServerConn(rwc io.ReadWriteCloser, buf *bufio.ReadWriter, req *http.Request) (conn *Conn, err os.Error) { +func newServerConn(rwc io.ReadWriteCloser, buf *bufio.ReadWriter, req *http.Request) (conn *Conn, err error) { config := new(Config) var hs serverHandshaker = &hybiServerHandshaker{Config: config} code, err := hs.ReadHandshake(buf.Reader, req) @@ -20,7 +19,7 @@ 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)) fmt.Fprintf(buf, "Sec-WebSocket-Version: %s\r\n", SupportedProtocolVersion) buf.WriteString("\r\n") - buf.WriteString(err.String()) + buf.WriteString(err.Error()) return } if err != nil { @@ -34,7 +33,7 @@ func newServerConn(rwc io.ReadWriteCloser, buf *bufio.ReadWriter, req *http.Requ if err != nil { fmt.Fprintf(buf, "HTTP/1.1 %03d %s\r\n", code, http.StatusText(code)) buf.WriteString("\r\n") - buf.WriteString(err.String()) + buf.WriteString(err.Error()) return } config.Protocol = nil @@ -79,7 +78,7 @@ type Handler func(*Conn) func (h Handler) ServeHTTP(w http.ResponseWriter, req *http.Request) { rwc, buf, err := w.(http.Hijacker).Hijack() if err != nil { - panic("Hijack failed: " + err.String()) + panic("Hijack failed: " + err.Error()) return } // The server should abort the WebSocket connection if it finds diff --git a/libgo/go/websocket/websocket.go b/libgo/go/websocket/websocket.go index a3750dd..9732ae1 100644 --- a/libgo/go/websocket/websocket.go +++ b/libgo/go/websocket/websocket.go @@ -42,7 +42,7 @@ type ProtocolError struct { ErrorString string } -func (err *ProtocolError) String() string { return err.ErrorString } +func (err *ProtocolError) Error() string { return err.ErrorString } var ( ErrBadProtocolVersion = &ProtocolError{"bad protocol version"} @@ -93,11 +93,11 @@ type Config struct { type serverHandshaker interface { // ReadHandshake reads handshake request message from client. // Returns http response code and error if any. - ReadHandshake(buf *bufio.Reader, req *http.Request) (code int, err os.Error) + ReadHandshake(buf *bufio.Reader, req *http.Request) (code int, err error) // AcceptHandshake accepts the client handshake request and sends // handshake response back to client. - AcceptHandshake(buf *bufio.Writer) (err os.Error) + AcceptHandshake(buf *bufio.Writer) (err error) // NewServerConn creates a new WebSocket connection. NewServerConn(buf *bufio.ReadWriter, rwc io.ReadWriteCloser, request *http.Request) (conn *Conn) @@ -124,7 +124,7 @@ type frameReader interface { // frameReaderFactory is an interface to creates new frame reader. type frameReaderFactory interface { - NewFrameReader() (r frameReader, err os.Error) + NewFrameReader() (r frameReader, err error) } // frameWriter is an interface to write a WebSocket frame. @@ -135,12 +135,12 @@ type frameWriter interface { // frameWriterFactory is an interface to create new frame writer. type frameWriterFactory interface { - NewFrameWriter(payloadType byte) (w frameWriter, err os.Error) + NewFrameWriter(payloadType byte) (w frameWriter, err error) } type frameHandler interface { - HandleFrame(frame frameReader) (r frameReader, err os.Error) - WriteClose(status int) (err os.Error) + HandleFrame(frame frameReader) (r frameReader, err error) + WriteClose(status int) (err error) } // Conn represents a WebSocket connection. @@ -168,7 +168,7 @@ type Conn struct { // if msg is not large enough for the frame data, it fills the msg and next Read // will read the rest of the frame data. // it reads Text frame or Binary frame. -func (ws *Conn) Read(msg []byte) (n int, err os.Error) { +func (ws *Conn) Read(msg []byte) (n int, err error) { ws.rio.Lock() defer ws.rio.Unlock() again: @@ -186,7 +186,7 @@ again: } } n, err = ws.frameReader.Read(msg) - if err == os.EOF { + if err == io.EOF { if trailer := ws.frameReader.TrailerReader(); trailer != nil { io.Copy(ioutil.Discard, trailer) } @@ -198,7 +198,7 @@ again: // Write implements the io.Writer interface: // it writes data as a frame to the WebSocket connection. -func (ws *Conn) Write(msg []byte) (n int, err os.Error) { +func (ws *Conn) Write(msg []byte) (n int, err error) { ws.wio.Lock() defer ws.wio.Unlock() w, err := ws.frameWriterFactory.NewFrameWriter(ws.PayloadType) @@ -214,7 +214,7 @@ func (ws *Conn) Write(msg []byte) (n int, err os.Error) { } // Close implements the io.Closer interface. -func (ws *Conn) Close() os.Error { +func (ws *Conn) Close() error { err := ws.frameHandler.WriteClose(ws.defaultCloseStatus) if err != nil { return err @@ -244,7 +244,7 @@ func (ws *Conn) RemoteAddr() net.Addr { } // SetTimeout sets the connection's network timeout in nanoseconds. -func (ws *Conn) SetTimeout(nsec int64) os.Error { +func (ws *Conn) SetTimeout(nsec int64) error { if conn, ok := ws.rwc.(net.Conn); ok { return conn.SetTimeout(nsec) } @@ -252,7 +252,7 @@ func (ws *Conn) SetTimeout(nsec int64) os.Error { } // SetReadTimeout sets the connection's network read timeout in nanoseconds. -func (ws *Conn) SetReadTimeout(nsec int64) os.Error { +func (ws *Conn) SetReadTimeout(nsec int64) error { if conn, ok := ws.rwc.(net.Conn); ok { return conn.SetReadTimeout(nsec) } @@ -260,7 +260,7 @@ func (ws *Conn) SetReadTimeout(nsec int64) os.Error { } // SetWriteTimeout sets the connection's network write timeout in nanoseconds. -func (ws *Conn) SetWriteTimeout(nsec int64) os.Error { +func (ws *Conn) SetWriteTimeout(nsec int64) error { if conn, ok := ws.rwc.(net.Conn); ok { return conn.SetWriteTimeout(nsec) } @@ -276,12 +276,12 @@ func (ws *Conn) Request() *http.Request { return ws.request } // Codec represents a symmetric pair of functions that implement a codec. type Codec struct { - Marshal func(v interface{}) (data []byte, payloadType byte, err os.Error) - Unmarshal func(data []byte, payloadType byte, v interface{}) (err os.Error) + Marshal func(v interface{}) (data []byte, payloadType byte, err error) + Unmarshal func(data []byte, payloadType byte, v interface{}) (err error) } // Send sends v marshaled by cd.Marshal as single frame to ws. -func (cd Codec) Send(ws *Conn, v interface{}) (err os.Error) { +func (cd Codec) Send(ws *Conn, v interface{}) (err error) { if err != nil { return err } @@ -298,7 +298,7 @@ func (cd Codec) Send(ws *Conn, v interface{}) (err os.Error) { } // Receive receives single frame from ws, unmarshaled by cd.Unmarshal and stores in v. -func (cd Codec) Receive(ws *Conn, v interface{}) (err os.Error) { +func (cd Codec) Receive(ws *Conn, v interface{}) (err error) { ws.rio.Lock() defer ws.rio.Unlock() if ws.frameReader != nil { @@ -328,7 +328,7 @@ again: return cd.Unmarshal(data, payloadType, v) } -func marshal(v interface{}) (msg []byte, payloadType byte, err os.Error) { +func marshal(v interface{}) (msg []byte, payloadType byte, err error) { switch data := v.(type) { case string: return []byte(data), TextFrame, nil @@ -338,7 +338,7 @@ func marshal(v interface{}) (msg []byte, payloadType byte, err os.Error) { return nil, UnknownFrame, ErrNotSupported } -func unmarshal(msg []byte, payloadType byte, v interface{}) (err os.Error) { +func unmarshal(msg []byte, payloadType byte, v interface{}) (err error) { switch data := v.(type) { case *string: *data = string(msg) @@ -378,12 +378,12 @@ Trivial usage: */ var Message = Codec{marshal, unmarshal} -func jsonMarshal(v interface{}) (msg []byte, payloadType byte, err os.Error) { +func jsonMarshal(v interface{}) (msg []byte, payloadType byte, err error) { msg, err = json.Marshal(v) return msg, TextFrame, err } -func jsonUnmarshal(msg []byte, payloadType byte, v interface{}) (err os.Error) { +func jsonUnmarshal(msg []byte, payloadType byte, v interface{}) (err error) { return json.Unmarshal(msg, v) } diff --git a/libgo/go/websocket/websocket_test.go b/libgo/go/websocket/websocket_test.go index 240af4e..69b5335 100644 --- a/libgo/go/websocket/websocket_test.go +++ b/libgo/go/websocket/websocket_test.go @@ -211,7 +211,7 @@ func TestHTTP(t *testing.T) { t.Errorf("Get: not url.Error %#v", err) return } - if urlerr.Error != io.ErrUnexpectedEOF { + if urlerr.Err != io.ErrUnexpectedEOF { t.Errorf("Get: error %#v", err) return } |