HTTP control server /version endpoint

This commit is contained in:
Quentin McGaw
2020-11-04 14:07:04 +00:00
parent b5fb2b849a
commit 3b04677f8f
6 changed files with 55 additions and 21 deletions

View File

@@ -3,12 +3,12 @@ package server
import (
"context"
"fmt"
"net"
"net/http"
"sync"
"time"
"github.com/qdm12/gluetun/internal/dns"
"github.com/qdm12/gluetun/internal/models"
"github.com/qdm12/gluetun/internal/openvpn"
"github.com/qdm12/gluetun/internal/updater"
"github.com/qdm12/golibs/logging"
@@ -22,22 +22,22 @@ type server struct {
address string
logging bool
logger logging.Logger
buildInfo models.BuildInformation
openvpnLooper openvpn.Looper
unboundLooper dns.Looper
updaterLooper updater.Looper
lookupIP func(host string) ([]net.IP, error)
}
func New(address string, logging bool, logger logging.Logger,
func New(address string, logging bool, logger logging.Logger, buildInfo models.BuildInformation,
openvpnLooper openvpn.Looper, unboundLooper dns.Looper, updaterLooper updater.Looper) Server {
return &server{
address: address,
logging: logging,
logger: logger.WithPrefix("http server: "),
buildInfo: buildInfo,
openvpnLooper: openvpnLooper,
unboundLooper: unboundLooper,
updaterLooper: updaterLooper,
lookupIP: net.LookupIP,
}
}
@@ -68,6 +68,9 @@ func (s *server) makeHandler() http.HandlerFunc {
switch r.Method {
case http.MethodGet:
switch r.RequestURI {
case "/version":
s.handleGetVersion(w)
w.WriteHeader(http.StatusOK)
case "/openvpn/actions/restart":
s.openvpnLooper.Restart()
w.WriteHeader(http.StatusOK)