Commit cabe12e8 authored by Mygod's avatar Mygod

Fix parsing IPv6 address in parseNumericAddress

parent ba921c34
...@@ -39,11 +39,18 @@ import com.crashlytics.android.Crashlytics ...@@ -39,11 +39,18 @@ import com.crashlytics.android.Crashlytics
import java.net.InetAddress import java.net.InetAddress
import java.net.URLConnection import java.net.URLConnection
private val parseNumericAddress by lazy {
InetAddress::class.java.getDeclaredMethod("parseNumericAddress", String::class.java).apply {
isAccessible = true
}
}
/** /**
* A slightly more performant variant of InetAddress.parseNumericAddress. * A slightly more performant variant of InetAddress.parseNumericAddress.
*
* Bug: https://issuetracker.google.com/issues/123456213
*/ */
fun String?.parseNumericAddress(): InetAddress? = fun String?.parseNumericAddress(): InetAddress? = Os.inet_pton(OsConstants.AF_INET, this) ?:
Os.inet_pton(OsConstants.AF_INET, this) ?: Os.inet_pton(OsConstants.AF_INET6, this) Os.inet_pton(OsConstants.AF_INET6, this)?.let { parseNumericAddress.invoke(null, this) as InetAddress }
fun parsePort(str: String?, default: Int, min: Int = 1025): Int { fun parsePort(str: String?, default: Int, min: Int = 1025): Int {
val value = str?.toIntOrNull() ?: default val value = str?.toIntOrNull() ?: default
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment