1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2026-01-06 09:15:37 -05:00
This commit is contained in:
Darien Raymond
2017-11-25 21:58:47 +01:00
parent 052d2d8278
commit 41961dbd60
2 changed files with 16 additions and 22 deletions

View File

@@ -48,23 +48,18 @@ var (
// BufferedWriter is a Writer with internal buffer.
type BufferedWriter struct {
writer Writer
legacyWriter io.Writer
buffer *Buffer
buffered bool
writer Writer
buffer *Buffer
buffered bool
}
// NewBufferedWriter creates a new BufferedWriter.
func NewBufferedWriter(writer Writer) *BufferedWriter {
w := &BufferedWriter{
return &BufferedWriter{
writer: writer,
buffer: New(),
buffered: true,
}
if lw, ok := writer.(io.Writer); ok {
w.legacyWriter = lw
}
return w
}
func (w *BufferedWriter) WriteByte(c byte) error {
@@ -74,8 +69,10 @@ func (w *BufferedWriter) WriteByte(c byte) error {
// Write implements io.Writer.
func (w *BufferedWriter) Write(b []byte) (int, error) {
if !w.buffered && w.legacyWriter != nil {
return w.legacyWriter.Write(b)
if !w.buffered {
if writer, ok := w.writer.(io.Writer); ok {
return writer.Write(b)
}
}
totalBytes := 0