Fix the "address already in use" issue

This commit is contained in:
Star Brilliant
2018-04-16 13:58:28 +08:00
parent 34adf40b36
commit 7d5cf98d2b
3 changed files with 22 additions and 22 deletions

View File

@@ -154,24 +154,24 @@ func (c *Client) newHTTPClient() error {
}
func (c *Client) Start() error {
result := make(chan error, len(c.udpServers)+len(c.tcpServers))
results := make(chan error, len(c.udpServers)+len(c.tcpServers))
for _, srv := range append(c.udpServers, c.tcpServers...) {
go func(srv *dns.Server) {
err := srv.ListenAndServe()
if err != nil {
log.Println(err)
}
result <- err
results <- err
}(srv)
}
for i := 0; i < cap(result); i++ {
err := <-result
for i := 0; i < cap(results); i++ {
err := <-results
if err != nil {
return err
}
}
close(result)
close(results)
return nil
}