about summary refs log tree commit diff stats
path: root/internal/server
diff options
context:
space:
mode:
Diffstat (limited to 'internal/server')
-rw-r--r--internal/server/server.go10
1 files changed, 7 insertions, 3 deletions
diff --git a/internal/server/server.go b/internal/server/server.go
index d2939ca..1b0407d 100644
--- a/internal/server/server.go
+++ b/internal/server/server.go
@@ -6,12 +6,12 @@ import (
 	"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 @@ func New(runtimeConfig *Config) (*Server, error) {
 }
 
 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")
 	}