| 12345678910111213141516171819202122232425262728293031 |
- //go:build linux && !android && !e2e_testing
- package udp
- import (
- "net/netip"
- "os"
- "testing"
- "github.com/slackhq/nebula/config"
- "github.com/stretchr/testify/assert"
- "github.com/stretchr/testify/require"
- )
- // A setting the kernel refuses fails the reload
- func TestReloadConfig_RefusedSettingFailsTheReload(t *testing.T) {
- if os.Geteuid() == 0 {
- t.Skip("root may set listen.so_mark, run as an unprivileged user")
- }
- conn, err := NewListener(testLogger(), Settings{Listen: netip.MustParseAddrPort("127.0.0.1:0"), Batch: 1})
- require.NoError(t, err)
- t.Cleanup(func() { _ = conn.Close() })
- c := config.NewC(testLogger())
- require.NoError(t, c.LoadString("listen:\n port: 0\n"))
- c.RegisterReloadCallback(conn.ReloadConfig)
- res := c.ReloadConfigString("listen:\n port: 0\n so_mark: 42\n")
- require.NoError(t, res.Err)
- assert.True(t, res.Failed)
- }
|