diff --git a/internal/api/api.go b/internal/api/api.go index ef7ad9ec..540f0f6d 100644 --- a/internal/api/api.go +++ b/internal/api/api.go @@ -49,7 +49,7 @@ func Init() { HandleFunc("api/exit", exitHandler) // ensure we can listen without errors - listener, err := net.Listen("tcp", cfg.Mod.Listen) + listener, err := net.Listen("tcp4", cfg.Mod.Listen) if err != nil { log.Fatal().Err(err).Msg("[api] listen") return @@ -169,7 +169,7 @@ func middlewareLog(next http.Handler) http.Handler { func middlewareAuth(username, password string, next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if !strings.HasPrefix(r.RemoteAddr, "127.") && !strings.HasPrefix(r.RemoteAddr, "[::1]") { + if !strings.HasPrefix(r.RemoteAddr, "127.") { user, pass, ok := r.BasicAuth() if !ok || user != username || pass != password { w.Header().Set("Www-Authenticate", `Basic realm="go2rtc"`) diff --git a/internal/rtsp/rtsp.go b/internal/rtsp/rtsp.go index 9d1234d5..9d9c3cb5 100644 --- a/internal/rtsp/rtsp.go +++ b/internal/rtsp/rtsp.go @@ -45,7 +45,7 @@ func Init() { return } - ln, err := net.Listen("tcp", address) + ln, err := net.Listen("tcp4", address) if err != nil { log.Error().Err(err).Msg("[rtsp] listen") return diff --git a/pkg/hap/server.go b/pkg/hap/server.go index 9fcf7e0d..460012fc 100644 --- a/pkg/hap/server.go +++ b/pkg/hap/server.go @@ -44,7 +44,7 @@ func NewServer(name string) *Server { func (s *Server) Serve(address string) (err error) { var ln net.Listener - if ln, err = net.Listen("tcp", address); err != nil { + if ln, err = net.Listen("tcp4", address); err != nil { return } diff --git a/pkg/rtsp/client_test.go b/pkg/rtsp/client_test.go index 39f3519f..ea7c3b44 100644 --- a/pkg/rtsp/client_test.go +++ b/pkg/rtsp/client_test.go @@ -11,7 +11,7 @@ import ( func TestTimeout(t *testing.T) { Timeout = time.Millisecond - ln, err := net.Listen("tcp", "localhost:0") + ln, err := net.Listen("tcp4", "localhost:0") require.Nil(t, err) client := NewClient("rtsp://" + ln.Addr().String() + "/stream") @@ -27,7 +27,7 @@ func TestTimeout(t *testing.T) { func TestMissedControl(t *testing.T) { Timeout = time.Millisecond - ln, err := net.Listen("tcp", "localhost:0") + ln, err := net.Listen("tcp4", "localhost:0") require.Nil(t, err) go func() { diff --git a/pkg/webrtc/api.go b/pkg/webrtc/api.go index 5086109d..5a3343f9 100644 --- a/pkg/webrtc/api.go +++ b/pkg/webrtc/api.go @@ -50,13 +50,13 @@ func NewAPI(address string) (*webrtc.API, error) { if address != "" { address, network, _ := strings.Cut(address, "/") if network == "" || network == "udp" { - if ln, err := net.ListenPacket("udp", address); err == nil { + if ln, err := net.ListenPacket("udp4", address); err == nil { udpMux := webrtc.NewICEUDPMux(nil, ln) s.SetICEUDPMux(udpMux) } } if network == "" || network == "tcp" { - if ln, err := net.Listen("tcp", address); err == nil { + if ln, err := net.Listen("tcp4", address); err == nil { tcpMux := webrtc.NewICETCPMux(nil, ln, 8) s.SetICETCPMux(tcpMux) }