Start StaticIpResolver testing.

main
Alex Hart 2023-02-28 16:29:08 -04:00 zatwierdzone przez Greyson Parrelli
rodzic 8910eac6e0
commit a95e695a97
2 zmienionych plików z 14 dodań i 11 usunięć

Wyświetl plik

@ -124,15 +124,16 @@ task postTranslateIpFetch {
group 'Translate' group 'Translate'
description 'Fetches static IPs for core hosts and writes them to static-ips.gradle' description 'Fetches static IPs for core hosts and writes them to static-ips.gradle'
doLast { doLast {
def staticIpResolver = new StaticIpResolver()
new File(projectDir, "static-ips.gradle").text = """ new File(projectDir, "static-ips.gradle").text = """
ext.service_ips='${StaticIpResolver.resolveToBuildConfig("chat.signal.org")}' ext.service_ips='${staticIpResolver.resolveToBuildConfig("chat.signal.org")}'
ext.storage_ips='${StaticIpResolver.resolveToBuildConfig("storage.signal.org")}' ext.storage_ips='${staticIpResolver.resolveToBuildConfig("storage.signal.org")}'
ext.cdn_ips='${StaticIpResolver.resolveToBuildConfig("cdn.signal.org")}' ext.cdn_ips='${staticIpResolver.resolveToBuildConfig("cdn.signal.org")}'
ext.cdn2_ips='${StaticIpResolver.resolveToBuildConfig("cdn2.signal.org")}' ext.cdn2_ips='${staticIpResolver.resolveToBuildConfig("cdn2.signal.org")}'
ext.cds_ips='${StaticIpResolver.resolveToBuildConfig("api.directory.signal.org")}' ext.cds_ips='${staticIpResolver.resolveToBuildConfig("api.directory.signal.org")}'
ext.kbs_ips='${StaticIpResolver.resolveToBuildConfig("api.backup.signal.org")}' ext.kbs_ips='${staticIpResolver.resolveToBuildConfig("api.backup.signal.org")}'
ext.sfu_ips='${StaticIpResolver.resolveToBuildConfig("sfu.voip.signal.org")}' ext.sfu_ips='${staticIpResolver.resolveToBuildConfig("sfu.voip.signal.org")}'
ext.content_proxy_ips='${StaticIpResolver.resolveToBuildConfig("contentproxy.signal.org")}' ext.content_proxy_ips='${staticIpResolver.resolveToBuildConfig("contentproxy.signal.org")}'
""".stripIndent().trim() """.stripIndent().trim()
} }
} }

Wyświetl plik

@ -3,6 +3,7 @@ package org.signal.buildtools
import org.xbill.DNS.ARecord import org.xbill.DNS.ARecord
import org.xbill.DNS.Lookup import org.xbill.DNS.Lookup
import org.xbill.DNS.Record import org.xbill.DNS.Record
import org.xbill.DNS.Resolver
import org.xbill.DNS.SimpleResolver import org.xbill.DNS.SimpleResolver
import org.xbill.DNS.Type import org.xbill.DNS.Type
import java.net.UnknownHostException import java.net.UnknownHostException
@ -12,7 +13,9 @@ import kotlin.streams.toList
* A tool to resolve hostname to static IPs. * A tool to resolve hostname to static IPs.
* Feeds into our custom DNS resolver to provide a static IP fallback for our services. * Feeds into our custom DNS resolver to provide a static IP fallback for our services.
*/ */
object StaticIpResolver { class StaticIpResolver @JvmOverloads constructor(
private val resolverProvider: () -> Resolver = { SimpleResolver("1.1.1.1") }
) {
/** /**
* Resolves a hostname to a list of IPs, represented as a Java array declaration. e.g. * Resolves a hostname to a list of IPs, represented as a Java array declaration. e.g.
@ -23,7 +26,6 @@ object StaticIpResolver {
* *
* This is intended to be injected as a BuildConfig. * This is intended to be injected as a BuildConfig.
*/ */
@JvmStatic
fun resolveToBuildConfig(hostName: String): String { fun resolveToBuildConfig(hostName: String): String {
val ips: List<String> = resolve(hostName) val ips: List<String> = resolve(hostName)
val builder = StringBuilder() val builder = StringBuilder()
@ -54,7 +56,7 @@ object StaticIpResolver {
private fun resolveOnce(hostName: String): List<String> { private fun resolveOnce(hostName: String): List<String> {
try { try {
val resolver = SimpleResolver("1.1.1.1") val resolver = resolverProvider()
val lookup: Lookup = doLookup(hostName) val lookup: Lookup = doLookup(hostName)
lookup.setResolver(resolver) lookup.setResolver(resolver)