DoCheckUnlock 直连 + 代理双轨并发检测各流媒体服务。
(ctx context.Context)
| 30 | |
| 31 | // DoCheckUnlock 直连 + 代理双轨并发检测各流媒体服务。 |
| 32 | func (a *API) DoCheckUnlock(ctx context.Context) CheckResponse { |
| 33 | var ( |
| 34 | direct []serviceCheckResult |
| 35 | proxied []serviceCheckResult |
| 36 | proxyAvailable bool |
| 37 | wg sync.WaitGroup |
| 38 | ) |
| 39 | |
| 40 | wg.Add(1) |
| 41 | go func() { |
| 42 | defer wg.Done() |
| 43 | direct = runChecks(ctx, checkHTTPClient) |
| 44 | }() |
| 45 | |
| 46 | if proxyURL := findLocalProxyPort(a.activeManager().Config()); proxyURL != "" { |
| 47 | proxyAvailable = true |
| 48 | wg.Add(1) |
| 49 | go func() { |
| 50 | defer wg.Done() |
| 51 | proxied = runChecks(ctx, newProxiedClient(proxyURL)) |
| 52 | }() |
| 53 | } |
| 54 | |
| 55 | wg.Wait() |
| 56 | |
| 57 | resp := CheckResponse{Direct: direct, ProxyAvailable: proxyAvailable} |
| 58 | if proxyAvailable { |
| 59 | resp.Proxied = proxied |
| 60 | } |
| 61 | return resp |
| 62 | } |
| 63 | |
| 64 | const checkUserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" |
| 65 |
no test coverage detected