Now supports socket activation
This commit is contained in:
@@ -3,10 +3,11 @@ package main
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"github.com/coreos/go-systemd/activation"
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/thequux/qddns/common"
|
||||
"github.com/thequux/qddns/db"
|
||||
_ "go.uber.org/zap"
|
||||
"github.com/thequux/qddns/multilistener"
|
||||
"net"
|
||||
"net/http"
|
||||
"os"
|
||||
@@ -96,7 +97,16 @@ func main() {
|
||||
r.POST("/update/:domain", Update)
|
||||
|
||||
var err error
|
||||
if _, err = net.ResolveTCPAddr("tcp", *listen); err == nil {
|
||||
if listeners, err := activation.Listeners(); err == nil && len(listeners) > 0 {
|
||||
// Socket activation
|
||||
var listener net.Listener
|
||||
if len(listeners) > 1 {
|
||||
listener, _ = multilistener.New(listeners...)
|
||||
} else {
|
||||
listener = listeners[0]
|
||||
}
|
||||
err = r.RunListener(listener)
|
||||
} else if _, err = net.ResolveTCPAddr("tcp", *listen); err == nil {
|
||||
err = r.Run(*listen)
|
||||
} else {
|
||||
// Probably a UNIX address
|
||||
|
||||
Reference in New Issue
Block a user