package main import ( "bufio" "log/slog" "net" rh "tilok.dev/go-http-server/response_helper" ) func main() { //TODO: Make interface configurable interf := "127.0.0.1:8080" listener, err := net.Listen("tcp", interf) if err != nil { slog.Error("Could not create listener", "err", err.Error()) } defer listener.Close() for { conn, err := listener.Accept() if err != nil { slog.Error("Could not accept connection", "err", err.Error()) continue } go handleConnection(conn) } } func handleConnection(conn net.Conn) { defer conn.Close() reader := bufio.NewReader(conn) headers := readHeaders(reader) if headers == nil { rh.RespondWithStatusCode(400, conn) return } slog.Info("Received request", "method", headers.Method, "uri", headers.Uri, "proto", headers.Proto, "client", conn.RemoteAddr().String()) headers.debugPrintHeaders() }