mirror of
https://github.com/bluenviron/mediamtx.git
synced 2025-12-20 02:00:05 -08:00
This commit is contained in:
parent
8d3c4074d8
commit
a0a75dfab6
2 changed files with 38 additions and 2 deletions
|
|
@ -1010,15 +1010,31 @@ func (p *Core) closeResources(newConf *conf.Conf, calledByAPI bool) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if closeLogger && p.logger != nil {
|
if closeLogger && p.logger != nil {
|
||||||
|
if newConf == nil {
|
||||||
p.logger.Close()
|
p.logger.Close()
|
||||||
|
}
|
||||||
p.logger = nil
|
p.logger = nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *Core) reloadConf(newConf *conf.Conf, calledByAPI bool) error {
|
func (p *Core) reloadConf(newConf *conf.Conf, calledByAPI bool) error {
|
||||||
|
oldLogger := p.logger
|
||||||
|
|
||||||
p.closeResources(newConf, calledByAPI)
|
p.closeResources(newConf, calledByAPI)
|
||||||
|
|
||||||
p.conf = newConf
|
p.conf = newConf
|
||||||
return p.createResources(false)
|
|
||||||
|
err := p.createResources(false)
|
||||||
|
if err != nil {
|
||||||
|
p.logger = oldLogger
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if p.logger != oldLogger {
|
||||||
|
oldLogger.Close()
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// APIConfigSet is called by api.
|
// APIConfigSet is called by api.
|
||||||
|
|
|
||||||
|
|
@ -132,3 +132,23 @@ func TestCoreHotReloading(t *testing.T) {
|
||||||
defer conn.Close()
|
defer conn.Close()
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestCoreHotReloadingAndLoggerError(t *testing.T) {
|
||||||
|
confPath := filepath.Join(os.TempDir(), "rtsp-conf")
|
||||||
|
|
||||||
|
err := os.WriteFile(confPath, []byte(""),
|
||||||
|
0o644)
|
||||||
|
require.NoError(t, err)
|
||||||
|
defer os.Remove(confPath)
|
||||||
|
|
||||||
|
p, ok := New([]string{confPath})
|
||||||
|
require.Equal(t, true, ok)
|
||||||
|
defer p.Close()
|
||||||
|
|
||||||
|
err = os.WriteFile(confPath, []byte("logDestinations: [file]\n"+
|
||||||
|
"logFile: /nonexisting/nonexist\n"),
|
||||||
|
0o644)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
p.Wait()
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue