(r io.Reader, buf []byte, pos, needed int)
| 404 | } |
| 405 | |
| 406 | func wsGet(r io.Reader, buf []byte, pos, needed int) ([]byte, int, error) { |
| 407 | avail := len(buf) - pos |
| 408 | if avail >= needed { |
| 409 | return buf[pos : pos+needed], pos + needed, nil |
| 410 | } |
| 411 | b := make([]byte, needed) |
| 412 | start := copy(b, buf[pos:]) |
| 413 | for start != needed { |
| 414 | n, err := r.Read(b[start:cap(b)]) |
| 415 | start += n |
| 416 | if err != nil { |
| 417 | return b, start, err |
| 418 | } |
| 419 | } |
| 420 | return b, pos + avail, nil |
| 421 | } |
| 422 | |
| 423 | func (r *websocketReader) handleControlFrame(frameType wsOpCode, buf []byte, pos, rem int) (int, error) { |
| 424 | var payload []byte |
no test coverage detected