()
| 32 | } |
| 33 | |
| 34 | func (c *QQClient) ConnectionQualityTest() *ConnectionQualityInfo { |
| 35 | if !c.Online.Load() { |
| 36 | return nil |
| 37 | } |
| 38 | r := &ConnectionQualityInfo{} |
| 39 | wg := sync.WaitGroup{} |
| 40 | wg.Add(2) |
| 41 | |
| 42 | currentServerAddr := c.servers[c.currServerIndex].String() |
| 43 | go func() { |
| 44 | defer wg.Done() |
| 45 | var err error |
| 46 | |
| 47 | if r.ChatServerLatency, err = qualityTest(currentServerAddr); err != nil { |
| 48 | c.error("test chat server latency error: %v", err) |
| 49 | r.ChatServerLatency = 9999 |
| 50 | } |
| 51 | |
| 52 | _ = c.ensureHighwayServers() |
| 53 | if c.highwaySession.AddrLength() > 0 { |
| 54 | if r.SrvServerLatency, err = qualityTest(c.highwaySession.SsoAddr[0].String()); err != nil { |
| 55 | c.error("test srv server latency error: %v", err) |
| 56 | r.SrvServerLatency = 9999 |
| 57 | } |
| 58 | } |
| 59 | }() |
| 60 | go func() { |
| 61 | defer wg.Done() |
| 62 | res := utils.RunTCPPingLoop(currentServerAddr, 10) |
| 63 | r.ChatServerPacketLoss = res.PacketsLoss |
| 64 | if c.highwaySession.AddrLength() > 0 { |
| 65 | res = utils.RunTCPPingLoop(c.highwaySession.SsoAddr[0].String(), 10) |
| 66 | r.SrvServerPacketLoss = res.PacketsLoss |
| 67 | } |
| 68 | }() |
| 69 | wg.Wait() |
| 70 | return r |
| 71 | } |
| 72 | |
| 73 | func (c *QQClient) initServers() { |
| 74 | adds, err := net.LookupIP("msfwifi.3g.qq.com") // host servers |
nothing calls this directly
no test coverage detected