Compare commits
2 Commits
4d7c836810
...
8a4d02c6e2
Author | SHA1 | Date | |
---|---|---|---|
8a4d02c6e2 | |||
d22b87da10 |
23
config.go
23
config.go
@ -167,6 +167,8 @@ func (r *Redirector) reloadServers() error {
|
|||||||
|
|
||||||
hosts := make(map[string]bool)
|
hosts := make(map[string]bool)
|
||||||
|
|
||||||
|
var hostsLock sync.Mutex
|
||||||
|
|
||||||
for _, server := range r.config.ServerList {
|
for _, server := range r.config.ServerList {
|
||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
|
|
||||||
@ -186,8 +188,6 @@ func (r *Redirector) reloadServers() error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
hosts[u.Host] = true
|
|
||||||
|
|
||||||
i := -1
|
i := -1
|
||||||
|
|
||||||
if v, exists := existing[u.Host]; exists {
|
if v, exists := existing[u.Host]; exists {
|
||||||
@ -197,7 +197,16 @@ func (r *Redirector) reloadServers() error {
|
|||||||
go func(i int, server ServerConfig, u *url.URL) {
|
go func(i int, server ServerConfig, u *url.URL) {
|
||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
|
|
||||||
s := r.addServer(server, u)
|
s, err := r.addServer(server, u)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
log.WithError(err).Warning("Unable to add server")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
hostsLock.Lock()
|
||||||
|
hosts[u.Host] = true
|
||||||
|
hostsLock.Unlock()
|
||||||
|
|
||||||
if _, ok := existing[u.Host]; ok {
|
if _, ok := existing[u.Host]; ok {
|
||||||
s.Redirects = r.servers[i].Redirects
|
s.Redirects = r.servers[i].Redirects
|
||||||
@ -243,7 +252,7 @@ var metricReplacer = strings.NewReplacer(".", "_", "-", "_")
|
|||||||
|
|
||||||
// addServer takes ServerConfig and constructs a server.
|
// addServer takes ServerConfig and constructs a server.
|
||||||
// This will create duplicate servers, but it will overwrite existing ones when changed.
|
// This will create duplicate servers, but it will overwrite existing ones when changed.
|
||||||
func (r *Redirector) addServer(server ServerConfig, u *url.URL) *Server {
|
func (r *Redirector) addServer(server ServerConfig, u *url.URL) (*Server, error) {
|
||||||
s := &Server{
|
s := &Server{
|
||||||
Available: true,
|
Available: true,
|
||||||
Host: u.Host,
|
Host: u.Host,
|
||||||
@ -275,7 +284,7 @@ func (r *Redirector) addServer(server ServerConfig, u *url.URL) *Server {
|
|||||||
"error": err,
|
"error": err,
|
||||||
"server": s.Host,
|
"server": s.Host,
|
||||||
}).Warning("Could not resolve address")
|
}).Warning("Could not resolve address")
|
||||||
return nil
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
var city City
|
var city City
|
||||||
@ -287,7 +296,7 @@ func (r *Redirector) addServer(server ServerConfig, u *url.URL) *Server {
|
|||||||
"server": s.Host,
|
"server": s.Host,
|
||||||
"ip": ips[0],
|
"ip": ips[0],
|
||||||
}).Warning("Could not geolocate address")
|
}).Warning("Could not geolocate address")
|
||||||
return nil
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if s.Continent == "" {
|
if s.Continent == "" {
|
||||||
@ -299,7 +308,7 @@ func (r *Redirector) addServer(server ServerConfig, u *url.URL) *Server {
|
|||||||
s.Longitude = city.Location.Longitude
|
s.Longitude = city.Location.Longitude
|
||||||
}
|
}
|
||||||
|
|
||||||
return s
|
return s, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *Redirector) reloadMap() error {
|
func (r *Redirector) reloadMap() error {
|
||||||
|
Reference in New Issue
Block a user