mirror of
				https://github.com/dcarrillo/whatismyip.git
				synced 2025-11-04 05:49:09 +00:00 
			
		
		
		
	Make geo database usage optional (#39)
This commit is contained in:
		@@ -41,7 +41,7 @@ func (d *DNS) Start() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (d *DNS) Stop() {
 | 
			
		||||
	log.Printf("Stopping DNS server...")
 | 
			
		||||
	log.Print("Stopping DNS server...")
 | 
			
		||||
	if err := d.server.Shutdown(); err != nil {
 | 
			
		||||
		log.Printf("DNS server forced to shutdown: %s", err)
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -48,8 +48,8 @@ func (q *Quic) Start() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (q *Quic) Stop() {
 | 
			
		||||
	log.Printf("Stopping QUIC server...")
 | 
			
		||||
	log.Print("Stopping QUIC server...")
 | 
			
		||||
	if err := q.server.Close(); err != nil {
 | 
			
		||||
		log.Printf("QUIC server forced to shutdown")
 | 
			
		||||
		log.Print("QUIC server forced to shutdown")
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -6,8 +6,7 @@ import (
 | 
			
		||||
	"os/signal"
 | 
			
		||||
	"syscall"
 | 
			
		||||
 | 
			
		||||
	"github.com/dcarrillo/whatismyip/internal/setting"
 | 
			
		||||
	"github.com/dcarrillo/whatismyip/models"
 | 
			
		||||
	"github.com/dcarrillo/whatismyip/service"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type Server interface {
 | 
			
		||||
@@ -17,18 +16,19 @@ type Server interface {
 | 
			
		||||
 | 
			
		||||
type Manager struct {
 | 
			
		||||
	servers []Server
 | 
			
		||||
	geoSvc  *service.Geo
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func Setup(servers []Server) *Manager {
 | 
			
		||||
func Setup(servers []Server, geoSvc *service.Geo) *Manager {
 | 
			
		||||
	return &Manager{
 | 
			
		||||
		servers: servers,
 | 
			
		||||
		geoSvc:  geoSvc,
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (m *Manager) Run() {
 | 
			
		||||
	m.start()
 | 
			
		||||
 | 
			
		||||
	models.Setup(setting.App.GeodbPath.City, setting.App.GeodbPath.ASN)
 | 
			
		||||
	signalChan := make(chan os.Signal, len(m.servers))
 | 
			
		||||
	signal.Notify(signalChan, syscall.SIGHUP, syscall.SIGINT, syscall.SIGTERM)
 | 
			
		||||
	var s os.Signal
 | 
			
		||||
@@ -37,13 +37,16 @@ func (m *Manager) Run() {
 | 
			
		||||
 | 
			
		||||
		if s == syscall.SIGHUP {
 | 
			
		||||
			m.stop()
 | 
			
		||||
			models.CloseDBs()
 | 
			
		||||
			models.Setup(setting.App.GeodbPath.City, setting.App.GeodbPath.ASN)
 | 
			
		||||
			if m.geoSvc != nil {
 | 
			
		||||
				m.geoSvc.Reload()
 | 
			
		||||
			}
 | 
			
		||||
			m.start()
 | 
			
		||||
		} else {
 | 
			
		||||
			log.Printf("Shutting down...")
 | 
			
		||||
			log.Print("Shutting down...")
 | 
			
		||||
			if m.geoSvc != nil {
 | 
			
		||||
				m.geoSvc.Shutdown()
 | 
			
		||||
			}
 | 
			
		||||
			m.stop()
 | 
			
		||||
			models.CloseDBs()
 | 
			
		||||
			break
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -39,7 +39,7 @@ func (t *TCP) Start() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (t *TCP) Stop() {
 | 
			
		||||
	log.Printf("Stopping TCP server...")
 | 
			
		||||
	log.Print("Stopping TCP server...")
 | 
			
		||||
	if err := t.server.Shutdown(t.ctx); err != nil {
 | 
			
		||||
		log.Printf("TCP server forced to shutdown: %s", err)
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -40,7 +40,7 @@ func (t *TLS) Start() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (t *TLS) Stop() {
 | 
			
		||||
	log.Printf("Stopping TLS server...")
 | 
			
		||||
	log.Print("Stopping TLS server...")
 | 
			
		||||
	if err := t.server.Shutdown(t.ctx); err != nil {
 | 
			
		||||
		log.Printf("TLS server forced to shutdown: %s", err)
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user