mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-18 03:44:54 -04:00
cleanup DNSUtil
This commit is contained in:
parent
8ddf99791f
commit
a9597bbf17
@ -20,29 +20,27 @@ import org.xbill.DNS.Type
|
||||
object DNSUtil {
|
||||
|
||||
fun resolveServerAddress(hostname: String): List<ServerAddress> {
|
||||
val fallbackAddress = getServerAddress(hostname)
|
||||
val addresses: MutableList<ServerAddress> = mutableListOf()
|
||||
if (hostname.contains(":")) {
|
||||
val originalAddress = getServerAddress(hostname)
|
||||
if (":" in hostname) {
|
||||
// port provided, skip srv check
|
||||
addresses.add(fallbackAddress)
|
||||
return addresses
|
||||
return listOf(originalAddress)
|
||||
}
|
||||
|
||||
val query = "_minecraft._tcp.$hostname"
|
||||
val records = Lookup(query, Type.SRV).run()
|
||||
if (records == null) {
|
||||
addresses.add(fallbackAddress)
|
||||
return addresses
|
||||
}
|
||||
val records = Lookup(query, Type.SRV).run() ?: return listOf(originalAddress)
|
||||
|
||||
val addresses: MutableList<ServerAddress> = mutableListOf()
|
||||
for (record in records) {
|
||||
check(record is SRVRecord)
|
||||
addresses.add(ServerAddress(record.target.toString(true), record.port))
|
||||
if (record !is SRVRecord) continue
|
||||
addresses += ServerAddress(record.target.toString(true), record.port)
|
||||
}
|
||||
addresses.add(fallbackAddress)
|
||||
addresses += originalAddress
|
||||
return addresses
|
||||
}
|
||||
|
||||
fun getServerAddress(hostname: String): ServerAddress {
|
||||
val splitHostname = fixAddress(hostname).split(":", limit = 2).toTypedArray()
|
||||
val splitHostname = fixAddress(hostname).split(":", limit = 2)
|
||||
|
||||
return if (splitHostname.size == 1) {
|
||||
ServerAddress(splitHostname[0], ProtocolDefinition.DEFAULT_PORT)
|
||||
} else {
|
||||
|
Loading…
x
Reference in New Issue
Block a user