From 3f532ae0656953dadadea1dc872d09b4e5453402 Mon Sep 17 00:00:00 2001 From: Andy Wang Date: Fri, 30 Aug 2019 20:43:04 +0100 Subject: [PATCH] writeFrame returns error --- internal/multiplex/session.go | 6 ++---- internal/multiplex/stream.go | 5 ++--- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/internal/multiplex/session.go b/internal/multiplex/session.go index 848f286..fc8ce46 100644 --- a/internal/multiplex/session.go +++ b/internal/multiplex/session.go @@ -151,8 +151,7 @@ func (sesh *Session) recvDataFromRemote(data []byte) error { defer sesh.streamsM.Unlock() stream, existing := sesh.streams[frame.StreamID] if existing { - stream.writeFrame(*frame) - return nil + return stream.writeFrame(*frame) } else { if frame.Closing == 1 { // If the stream has been closed and the current frame is a closing frame, we do noop @@ -166,8 +165,7 @@ func (sesh *Session) recvDataFromRemote(data []byte) error { // we ignore the error here. If the switchboard is broken, it will be reflected upon stream.Write stream = makeStream(sesh, frame.StreamID, connId) sesh.acceptCh <- stream - stream.writeFrame(*frame) - return nil + return stream.writeFrame(*frame) } } diff --git a/internal/multiplex/stream.go b/internal/multiplex/stream.go index a98e586..7064288 100644 --- a/internal/multiplex/stream.go +++ b/internal/multiplex/stream.go @@ -60,9 +60,8 @@ func makeStream(sesh *Session, id uint32, assignedConnId uint32) *Stream { func (s *Stream) isClosed() bool { return atomic.LoadUint32(&s.closed) == 1 } -func (s *Stream) writeFrame(frame Frame) { - // TODO: Return error - s.recvBuf.Write(frame) +func (s *Stream) writeFrame(frame Frame) error { + return s.recvBuf.Write(frame) } // Read implements io.Read