package main import ( "net" "os" "github.com/rs/zerolog" "github.com/rs/zerolog/log" ) func main() { log.Logger = log.Output(zerolog.ConsoleWriter{Out: os.Stderr}) // Create a new listener listener, err := net.Listen("tcp", ":8443") if err != nil { log.Panic().Err(err).Msg("Failed to create listener") } // Accept connections for { conn, err := listener.Accept() if err != nil { log.Err(err).Msg("Failed to accept connection") continue } go func(conn net.Conn) { defer conn.Close() serverName, _, err := getServerNameExtension(conn) if err != nil { log.Err(err).Msg("Failed to read client hello") return } log.Info().Str("SNI", serverName).Msg("Accepted connection") }(conn) } }