Files
mediamtx/internal/protocols/httpp/server_test.go
T
Alessandro RosandGitHub d4c6f95291 dump unencrypted TLS sessions (#5624)
when dumpPackets is true, embed TLS master keys into the dump, in a
format which is natively compatible with Wireshark.
2026-04-04 14:46:43 +02:00

53 lines
1.1 KiB
Go

package httpp
import (
"net"
"net/http"
"os"
"strings"
"testing"
"time"
"github.com/stretchr/testify/require"
"github.com/bluenviron/mediamtx/internal/test"
)
func TestUnixSocket(t *testing.T) {
s := &Server{
Address: "unix://http.sock",
ReadTimeout: 10 * time.Second,
WriteTimeout: 10 * time.Second,
Parent: test.NilLogger,
Handler: http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) {
w.WriteHeader(http.StatusOK)
}),
}
err := s.Initialize()
require.NoError(t, err)
info, err := os.Stat("http.sock")
require.NoError(t, err)
require.Equal(t, os.FileMode(0o755), info.Mode().Perm())
conn, err := net.Dial("unix", "http.sock")
require.NoError(t, err)
_, err = conn.Write([]byte("OPTIONS / HTTP/1.1\n" +
"Host: localhost:8889\n\n"))
require.NoError(t, err)
buf := make([]byte, 200)
n, err := conn.Read(buf)
require.NoError(t, err)
res := strings.Split(string(buf[:n]), "\r\n")
require.Equal(t, "HTTP/1.1 200 OK", res[0])
conn.Close()
s.Close()
_, err = os.Stat("http.sock")
require.EqualError(t, err, "stat http.sock: no such file or directory")
}