Compare commits
2 Commits
4d7c836810
...
feature/re
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)
|
||||
|
||||
var hostsLock sync.Mutex
|
||||
|
||||
for _, server := range r.config.ServerList {
|
||||
wg.Add(1)
|
||||
|
||||
@ -186,8 +188,6 @@ func (r *Redirector) reloadServers() error {
|
||||
return err
|
||||
}
|
||||
|
||||
hosts[u.Host] = true
|
||||
|
||||
i := -1
|
||||
|
||||
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) {
|
||||
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 {
|
||||
s.Redirects = r.servers[i].Redirects
|
||||
@ -243,7 +252,7 @@ var metricReplacer = strings.NewReplacer(".", "_", "-", "_")
|
||||
|
||||
// addServer takes ServerConfig and constructs a server.
|
||||
// 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{
|
||||
Available: true,
|
||||
Host: u.Host,
|
||||
@ -275,7 +284,7 @@ func (r *Redirector) addServer(server ServerConfig, u *url.URL) *Server {
|
||||
"error": err,
|
||||
"server": s.Host,
|
||||
}).Warning("Could not resolve address")
|
||||
return nil
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var city City
|
||||
@ -287,7 +296,7 @@ func (r *Redirector) addServer(server ServerConfig, u *url.URL) *Server {
|
||||
"server": s.Host,
|
||||
"ip": ips[0],
|
||||
}).Warning("Could not geolocate address")
|
||||
return nil
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if s.Continent == "" {
|
||||
@ -299,7 +308,7 @@ func (r *Redirector) addServer(server ServerConfig, u *url.URL) *Server {
|
||||
s.Longitude = city.Location.Longitude
|
||||
}
|
||||
|
||||
return s
|
||||
return s, nil
|
||||
}
|
||||
|
||||
func (r *Redirector) reloadMap() error {
|
||||
|
Reference in New Issue
Block a user