Files
http-server/main.go
2026-02-15 15:22:10 +01:00

44 lines
873 B
Go

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()
}