mirror of
https://github.com/owncast/owncast.git
synced 2024-11-22 04:40:37 +03:00
Add a read timeout when reading rtmp to handle connections that have dropped. Closes #564
This commit is contained in:
parent
acd546ce6c
commit
2b81fcef53
1 changed files with 11 additions and 0 deletions
|
@ -114,12 +114,23 @@ func HandleConn(c *rtmp.Conn, nc net.Conn) {
|
|||
break
|
||||
}
|
||||
|
||||
// If we don't get a readable packet in 10 seconds give up and disconnect
|
||||
_rtmpConnection.SetReadDeadline(time.Now().Add(10 * time.Second))
|
||||
pkt, err := c.ReadPacket()
|
||||
|
||||
// Broadcaster disconnected
|
||||
if err == io.EOF {
|
||||
handleDisconnect(nc)
|
||||
break
|
||||
}
|
||||
|
||||
// Read timeout. Disconnect.
|
||||
if neterr, ok := err.(net.Error); ok && neterr.Timeout() {
|
||||
log.Debugln("Timeout reading the inbound stream from the broadcaster. Assuming that they disconnected and ending the stream.")
|
||||
handleDisconnect(nc)
|
||||
break
|
||||
}
|
||||
|
||||
if err := w.WritePacket(pkt); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue