From 7f13d014b9d1b5de8a077ad4b196b88a56c06271 Mon Sep 17 00:00:00 2001 From: Carl Kittelberger Date: Mon, 2 Jul 2018 08:30:11 +0200 Subject: [PATCH] Fix crash after connection closure. --- app/channels/channel.go | 1 + plugins/icecast/output/instance.go | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/channels/channel.go b/app/channels/channel.go index a5b2d91..70c9bda 100644 --- a/app/channels/channel.go +++ b/app/channels/channel.go @@ -56,6 +56,7 @@ func (channel *Channel) SetMetadata(data map[string]string) { func (channel *Channel) Metadata() chan map[string]string { outC := make(chan map[string]string) go func() { + defer close(outC) c := channel.Events.Sub("metadata") forloop: for event := range c { diff --git a/plugins/icecast/output/instance.go b/plugins/icecast/output/instance.go index d8a37be..f0fc8bd 100644 --- a/plugins/icecast/output/instance.go +++ b/plugins/icecast/output/instance.go @@ -75,7 +75,7 @@ func (instance *pluginInstance) Init() { nw = mw metadataChan := channel.Metadata() - defer close(metadataChan) + defer func() { metadataChan <- nil }() go func() { for metadata := range metadataChan { metadataToWrite := streams.Metadata{}