|
|
@@ -10,6 +10,7 @@ import (
|
|
10
|
10
|
"slices"
|
|
11
|
11
|
"strconv"
|
|
12
|
12
|
"strings"
|
|
|
13
|
+ "sync"
|
|
13
|
14
|
"text/template"
|
|
14
|
15
|
"time"
|
|
15
|
16
|
|
|
|
@@ -220,18 +221,29 @@ func (d *Doctor) checkNetwork(ntw mtglib.Network) bool {
|
|
220
|
221
|
dcs := slices.Collect(maps.Keys(essentials.TelegramCoreAddresses))
|
|
221
|
222
|
slices.Sort(dcs)
|
|
222
|
223
|
|
|
|
224
|
+ errs := make([]error, len(dcs))
|
|
|
225
|
+
|
|
|
226
|
+ var wg sync.WaitGroup
|
|
|
227
|
+ for i, dc := range dcs {
|
|
|
228
|
+ wg.Add(1)
|
|
|
229
|
+ go func() {
|
|
|
230
|
+ defer wg.Done()
|
|
|
231
|
+ errs[i] = d.checkNetworkAddresses(ntw, essentials.TelegramCoreAddresses[dc])
|
|
|
232
|
+ }()
|
|
|
233
|
+ }
|
|
|
234
|
+ wg.Wait()
|
|
|
235
|
+
|
|
223
|
236
|
ok := true
|
|
224
|
237
|
|
|
225
|
|
- for _, dc := range dcs {
|
|
226
|
|
- err := d.checkNetworkAddresses(ntw, essentials.TelegramCoreAddresses[dc])
|
|
227
|
|
- if err == nil {
|
|
|
238
|
+ for i, dc := range dcs {
|
|
|
239
|
+ if errs[i] == nil {
|
|
228
|
240
|
tplODCConnect.Execute(os.Stdout, map[string]any{ //nolint: errcheck
|
|
229
|
241
|
"dc": dc,
|
|
230
|
242
|
})
|
|
231
|
243
|
} else {
|
|
232
|
244
|
tplEDCConnect.Execute(os.Stdout, map[string]any{ //nolint: errcheck
|
|
233
|
245
|
"dc": dc,
|
|
234
|
|
- "error": err,
|
|
|
246
|
+ "error": errs[i],
|
|
235
|
247
|
})
|
|
236
|
248
|
ok = false
|
|
237
|
249
|
}
|