diff options
Diffstat (limited to 'internal/listenfd')
-rw-r--r-- | internal/listenfd/listenfd.go | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/internal/listenfd/listenfd.go b/internal/listenfd/listenfd.go deleted file mode 100644 index 651c245..0000000 --- a/internal/listenfd/listenfd.go +++ /dev/null @@ -1,61 +0,0 @@ -package listenfd - -import ( - "crypto/tls" - "net" - "os" - "strconv" - "website/internal/log" - - "github.com/pkg/errors" -) - -const fdStart = 3 - -func GetListener(i uint64, addr string) (l net.Listener, err error) { - l, err = getFDSocket(i) - if err != nil { - log.Warn("could not create listener from listenfd", "error", err) - } - - log.Debug("listener from listenfd?", "passed", l != nil) - if l == nil { - l, err = net.Listen("tcp", addr) - if err != nil { - return nil, errors.Wrap(err, "could not create listener") - } - } - - return -} - -func GetListenerTLS(i uint64, addr string, config *tls.Config) (l net.Listener, err error) { - l, err = GetListener(i, addr) - if err != nil { - return nil, err - } - - return tls.NewListener(l, config), nil -} - -func getFDSocket(i uint64) (net.Listener, error) { - lfds, present := os.LookupEnv("LISTEN_FDS") - if !present { - return nil, nil - } - - fds, err := strconv.ParseUint(lfds, 10, 32) - if err != nil { - return nil, errors.Wrap(err, "could not parse LISTEN_FDS") - } - if i >= fds { - return nil, errors.Errorf("only %d fds available, requested index %d", fds, i) - } - - l, err := net.FileListener(os.NewFile(uintptr(i+fdStart), "")) - if err != nil { - return nil, errors.Wrap(err, "could not create listener") - } - - return l, nil -} |