From 33cfdbbbea4b987782f994e87be7a3e7b67cf95e Mon Sep 17 00:00:00 2001 From: Ben Adrian Sarmiento Date: Sat, 17 Aug 2024 13:07:55 +0800 Subject: [PATCH] Add new ipv4 and ipv6 hostnames --- internal/handlers/home.go | 1 + pkg/http/ip.go | 65 +++++++++++++++++++++++++++++---------- 2 files changed, 50 insertions(+), 16 deletions(-) diff --git a/internal/handlers/home.go b/internal/handlers/home.go index 37271d7..900437f 100644 --- a/internal/handlers/home.go +++ b/internal/handlers/home.go @@ -541,6 +541,7 @@ func (zr *Handlers) handleHome(resp http.ResponseWriter, req *http.Request) {
Reset repair state of all torrents so they can be repaired again
+ // add more utilities here diff --git a/pkg/http/ip.go b/pkg/http/ip.go index b55f34a..eb6b72a 100644 --- a/pkg/http/ip.go +++ b/pkg/http/ip.go @@ -110,49 +110,82 @@ func (r *IPRepository) runLatencyTest() { for { lastDomainsWorked := false for i := start; i <= limit; i++ { - domain := fmt.Sprintf("%d.download.real-debrid.com", i) - ips, err := net.LookupIP(domain) + // EU servers + ipv4Domain := fmt.Sprintf("%d-4.download.real-debrid.com", i) + ipv6Domain := fmt.Sprintf("%d-6.download.real-debrid.com", i) + + ips, err := net.LookupIP(ipv4Domain) if err != nil || len(ips) == 0 { continue } - latency, err := r.testDomainLatency(r.ipv4client, domain) + latency, err := r.testDomainLatency(r.ipv4client, ipv4Domain) if err == nil { - r.ipv4latencyMap[domain] = latency - r.log.Debugf("Latency from ipv4 %s: %.5f seconds", domain, latency) + r.ipv4latencyMap[ipv4Domain] = latency + r.log.Debugf("Latency from ipv4 %s: %.5f seconds", ipv4Domain, latency) if i >= limit-2 { lastDomainsWorked = true } } - latency, err = r.testDomainLatency(r.ipv6client, domain) + latency, err = r.testDomainLatency(r.ipv6client, ipv6Domain) if err == nil { - r.ipv6latencyMap[domain] = latency - r.log.Debugf("Latency from ipv6 %s: %.5f seconds", domain, latency) + r.ipv6latencyMap[ipv6Domain] = latency + r.log.Debugf("Latency from ipv6 %s: %.5f seconds", ipv6Domain, latency) if i >= limit-2 { lastDomainsWorked = true } } - domain = fmt.Sprintf("%d.download.real-debrid.cloud", i) - ips, err = net.LookupIP(domain) + // EU servers (old) + ipv4Domain = fmt.Sprintf("%d.download.real-debrid.com", i) + ipv6Domain = fmt.Sprintf("%d.download.real-debrid.com", i) + + ips, err = net.LookupIP(ipv4Domain) if err != nil || len(ips) == 0 { continue } - latency, err = r.testDomainLatency(r.ipv4client, domain) + latency, err = r.testDomainLatency(r.ipv4client, ipv4Domain) if err == nil { - r.ipv4latencyMap[domain] = latency - r.log.Debugf("Latency from ipv4 %s: %.5f seconds", domain, latency) + r.ipv4latencyMap[ipv4Domain] = latency + r.log.Debugf("Latency from ipv4 %s: %.5f seconds", ipv4Domain, latency) if i >= limit-2 { lastDomainsWorked = true } } - latency, err = r.testDomainLatency(r.ipv6client, domain) + latency, err = r.testDomainLatency(r.ipv6client, ipv6Domain) if err == nil { - r.ipv6latencyMap[domain] = latency - r.log.Debugf("Latency from ipv6 %s: %.5f seconds", domain, latency) + r.ipv6latencyMap[ipv6Domain] = latency + r.log.Debugf("Latency from ipv6 %s: %.5f seconds", ipv6Domain, latency) + if i >= limit-2 { + lastDomainsWorked = true + } + } + + // Cloudflare servers + ipv4Domain = fmt.Sprintf("%d.download.real-debrid.cloud", i) + ipv6Domain = fmt.Sprintf("%d.download.real-debrid.cloud", i) + + ips, err = net.LookupIP(ipv4Domain) + if err != nil || len(ips) == 0 { + continue + } + + latency, err = r.testDomainLatency(r.ipv4client, ipv4Domain) + if err == nil { + r.ipv4latencyMap[ipv4Domain] = latency + r.log.Debugf("Latency from ipv4 %s: %.5f seconds", ipv4Domain, latency) + if i >= limit-2 { + lastDomainsWorked = true + } + } + + latency, err = r.testDomainLatency(r.ipv6client, ipv6Domain) + if err == nil { + r.ipv6latencyMap[ipv6Domain] = latency + r.log.Debugf("Latency from ipv6 %s: %.5f seconds", ipv6Domain, latency) if i >= limit-2 { lastDomainsWorked = true }