mirror of
https://github.com/bluenviron/mediamtx.git
synced 2025-12-19 17:50:03 -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 {
|
||||
p.logger.Close()
|
||||
if newConf == nil {
|
||||
p.logger.Close()
|
||||
}
|
||||
p.logger = nil
|
||||
}
|
||||
}
|
||||
|
||||
func (p *Core) reloadConf(newConf *conf.Conf, calledByAPI bool) error {
|
||||
oldLogger := p.logger
|
||||
|
||||
p.closeResources(newConf, calledByAPI)
|
||||
|
||||
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.
|
||||
|
|
|
|||
|
|
@ -132,3 +132,23 @@ func TestCoreHotReloading(t *testing.T) {
|
|||
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