(frameType int, deadline time.Time, buf0, buf1 []byte)
| 377 | } |
| 378 | |
| 379 | func (c *Conn) write(frameType int, deadline time.Time, buf0, buf1 []byte) error { |
| 380 | <-c.mu |
| 381 | defer func() { c.mu <- struct{}{} }() |
| 382 | |
| 383 | c.writeErrMu.Lock() |
| 384 | err := c.writeErr |
| 385 | c.writeErrMu.Unlock() |
| 386 | if err != nil { |
| 387 | return err |
| 388 | } |
| 389 | |
| 390 | c.conn.SetWriteDeadline(deadline) |
| 391 | if len(buf1) == 0 { |
| 392 | _, err = c.conn.Write(buf0) |
| 393 | } else { |
| 394 | err = c.writeBufs(buf0, buf1) |
| 395 | } |
| 396 | if err != nil { |
| 397 | return c.writeFatal(err) |
| 398 | } |
| 399 | if frameType == CloseMessage { |
| 400 | c.writeFatal(ErrCloseSent) |
| 401 | } |
| 402 | return nil |
| 403 | } |
| 404 | |
| 405 | func (c *Conn) writeBufs(bufs ...[]byte) error { |
| 406 | b := net.Buffers(bufs) |
no test coverage detected