Updater loop with period and http route (#240)

* Updater loop with period and http route
* Using DNS over TLS to update servers
* Better logging
* Remove goroutines for cyberghost updater
* Respects context for servers update (quite slow overall)
* Increase shutdown grace period to 5 seconds
* Update announcement
* Add log lines for each provider update start
This commit is contained in:
Quentin McGaw
2020-09-12 14:04:54 -04:00
committed by GitHub
parent ee64cbf1fd
commit a19efbd923
19 changed files with 358 additions and 82 deletions

View File

@@ -21,18 +21,20 @@ type server struct {
logger logging.Logger
restartOpenvpn func()
restartUnbound func()
restartUpdater func()
getOpenvpnSettings func() settings.OpenVPN
getPortForwarded func() uint16
lookupIP func(host string) ([]net.IP, error)
}
func New(address string, logger logging.Logger, restartOpenvpn, restartUnbound func(),
func New(address string, logger logging.Logger, restartOpenvpn, restartUnbound, restartUpdater func(),
getOpenvpnSettings func() settings.OpenVPN, getPortForwarded func() uint16) Server {
return &server{
address: address,
logger: logger.WithPrefix("http server: "),
restartOpenvpn: restartOpenvpn,
restartUnbound: restartUnbound,
restartUpdater: restartUpdater,
getOpenvpnSettings: getOpenvpnSettings,
getPortForwarded: getPortForwarded,
lookupIP: net.LookupIP,
@@ -76,6 +78,8 @@ func (s *server) makeHandler() http.HandlerFunc {
s.handleGetOpenvpnSettings(w)
case "/health":
s.handleHealth(w)
case "/updater/restart":
s.restartUpdater()
default:
routeDoesNotExist(s.logger, w, r)
}