Skip to content

Commit

Permalink
webrtc: only send STOP_SENDING from receiving read stream state
Browse files Browse the repository at this point in the history
  • Loading branch information
marten-seemann committed Jul 31, 2023
1 parent 37f6b9c commit 1990c28
Showing 1 changed file with 9 additions and 3 deletions.
12 changes: 9 additions & 3 deletions p2p/transport/webrtc/stream_read.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,12 +72,18 @@ func (s *stream) readMessageFromDataChannel(msg *pb.Message) error {
func (s *stream) SetReadDeadline(t time.Time) error { return s.dataChannel.SetReadDeadline(t) }

func (s *stream) CloseRead() error {
s.readMu.Lock()
defer s.readMu.Unlock()

s.receiveState = receiveStateReset
if s.nextMessage != nil {
s.processIncomingFlag(s.nextMessage.Flag)
s.nextMessage = nil
}
err := s.sendControlMessage(&pb.Message{Flag: pb.Message_STOP_SENDING.Enum()})
s.maybeDeclareStreamDone()
return err
if s.receiveState == receiveStateReceiving && s.closeErr == nil {
err := s.sendControlMessage(&pb.Message{Flag: pb.Message_STOP_SENDING.Enum()})
s.maybeDeclareStreamDone()
return err
}
return nil
}

0 comments on commit 1990c28

Please sign in to comment.