mirror of
https://github.com/bluenviron/mediamtx.git
synced 2025-12-25 04:22:00 -08:00
fix crash when using environment variables and config file is missing (#103)
This commit is contained in:
parent
64e38f7db4
commit
57877df875
2 changed files with 25 additions and 0 deletions
|
|
@ -81,6 +81,11 @@ func process(env map[string]string, envKey string, rv reflect.Value) error {
|
|||
}
|
||||
mapKey = strings.ToLower(mapKey)
|
||||
|
||||
// initialize only if there's at least one key
|
||||
if rv.IsNil() {
|
||||
rv.Set(reflect.MakeMap(rt))
|
||||
}
|
||||
|
||||
nv := rv.MapIndex(reflect.ValueOf(mapKey))
|
||||
zero := reflect.Value{}
|
||||
if nv == zero {
|
||||
|
|
|
|||
20
main_test.go
20
main_test.go
|
|
@ -202,6 +202,26 @@ func TestEnvironment(t *testing.T) {
|
|||
}, pa)
|
||||
}
|
||||
|
||||
func TestEnvironmentNoFile(t *testing.T) {
|
||||
os.Setenv("RTSP_PATHS_CAM1_SOURCE", "rtsp://testing")
|
||||
defer os.Unsetenv("RTSP_PATHS_CAM1_SOURCE")
|
||||
|
||||
p, err := testProgram("{}")
|
||||
require.NoError(t, err)
|
||||
defer p.close()
|
||||
|
||||
pa, ok := p.conf.Paths["cam1"]
|
||||
require.Equal(t, true, ok)
|
||||
require.Equal(t, &conf.PathConf{
|
||||
Source: "rtsp://testing",
|
||||
SourceUrl: func() *url.URL {
|
||||
u, _ := url.Parse("rtsp://testing:554")
|
||||
return u
|
||||
}(),
|
||||
SourceProtocol: "udp",
|
||||
}, pa)
|
||||
}
|
||||
|
||||
func TestPublish(t *testing.T) {
|
||||
for _, conf := range []struct {
|
||||
publishSoft string
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue