extract socket passing protocol handler to package
1 file changed, 7 insertions(+), 3 deletions(-)
changed files
M internal/server/server.go → internal/server/server.go
@@ -6,12 +6,12 @@ "fmt" "net" "net/http" "net/url" - "os" "slices" "time" "website/internal/builder" cfg "website/internal/config" + "website/internal/listenfd" "website/internal/log" "website/internal/website"@@ -161,14 +161,18 @@ }, nil } func (s *Server) Start() error { - f := os.NewFile(uintptr(3), "") - l, err := net.FileListener(f) + l, err := listenfd.GetListener(0) if err != nil { + log.Warn("could not create listener from listenfd", "error", err) + } + + if l == nil { l, err = net.Listen("tcp", s.Addr) if err != nil { return errors.Wrap(err, "could not create listener") } } + if err := http.Serve(l, s.Handler); err != http.ErrServerClosed { return errors.Wrap(err, "error creating/closing server") }