正在查看: Cashalo v2.25.0.0 应用的 DnsTxtQueryKt.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: Cashalo v2.25.0.0 应用的 DnsTxtQueryKt.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.statsig.androidsdk;
import com.fullstory.FS;
import com.tom_roush.fontbox.ttf.GlyfDescript;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.Iterator;
import java.util.List;
import kotlin.Metadata;
import kotlin.collections.ArraysKt;
import kotlin.collections.CollectionsKt;
import kotlin.collections.IndexedValue;
import kotlin.coroutines.Continuation;
import kotlin.jvm.internal.Intrinsics;
import kotlin.text.StringsKt;
import kotlinx.coroutines.BuildersKt;
import kotlinx.coroutines.Dispatchers;
@Metadata(d1 = {"\u0000*\n\u0000\n\u0002\u0010\u000e\n\u0000\n\u0002\u0010 \n\u0002\u0010\f\n\u0002\b\u0003\n\u0002\u0010\u0012\n\u0002\b\u0003\n\u0002\u0010\b\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0006\u001a\u0010\u0010\r\u001a\u00020\u000e2\u0006\u0010\u000f\u001a\u00020\u0001H\u0002\u001a\u0017\u0010\u0010\u001a\b\u0012\u0004\u0012\u00020\u00010\u0003H\u0086@ø\u0001\u0000¢\u0006\u0002\u0010\u0011\u001a\u0014\u0010\u0012\u001a\b\u0012\u0004\u0012\u00020\u00010\u00032\u0006\u0010\u0013\u001a\u00020\b\"\u000e\u0010\u0000\u001a\u00020\u0001X\u0086T¢\u0006\u0002\n\u0000\"\u0017\u0010\u0002\u001a\b\u0012\u0004\u0012\u00020\u00040\u0003¢\u0006\b\n\u0000\u001a\u0004\b\u0005\u0010\u0006\"\u0011\u0010\u0007\u001a\u00020\b¢\u0006\b\n\u0000\u001a\u0004\b\t\u0010\n\"\u000e\u0010\u000b\u001a\u00020\fX\u0086T¢\u0006\u0002\n\u0000\u0082\u0002\u0004\n\u0002\b\u0019¨\u0006\u0014"}, d2 = {"DNS_QUERY_ENDPOINT", "", "DOMAIN_CHARS", "", "", "getDOMAIN_CHARS", "()Ljava/util/List;", "FEATURE_ASSETS_DNS_QUERY", "", "getFEATURE_ASSETS_DNS_QUERY", "()[B", "MAX_START_LOOKUP", "", "createHttpConnection", "Ljava/net/HttpURLConnection;", "url", "fetchTxtRecords", "(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;", "parseDnsResponse", "input", "android-sdk_release"}, k = 2, mv = {1, 5, 1}, xi = 48)
public final class DnsTxtQueryKt {
public static final String DNS_QUERY_ENDPOINT = "https://cloudflare-dns.com/dns-query";
public static final int MAX_START_LOOKUP = 200;
private static final byte[] FEATURE_ASSETS_DNS_QUERY = {0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 13, 102, 101, 97, 116, 117, 114, 101, 97, 115, 115, 101, 116, 115, 3, 111, 114, 103, 0, 0, GlyfDescript.X_DUAL, 0, 1};
private static final List<Character> DOMAIN_CHARS = CollectionsKt.listOf(new Character[]{'i', 'e', 'd'});
public static final byte[] getFEATURE_ASSETS_DNS_QUERY() {
return FEATURE_ASSETS_DNS_QUERY;
}
public static final List<Character> getDOMAIN_CHARS() {
return DOMAIN_CHARS;
}
public static final Object fetchTxtRecords(Continuation<? super List<String>> continuation) {
Dispatchers dispatchers = Dispatchers.INSTANCE;
return BuildersKt.withContext(Dispatchers.getIO(), new DnsTxtQueryKt$fetchTxtRecords$2(null), continuation);
}
public static final HttpURLConnection createHttpConnection(String str) {
URLConnection urlconnection_wrapInstance = FS.urlconnection_wrapInstance(new URL(str).openConnection());
if (urlconnection_wrapInstance == null) {
throw new NullPointerException("null cannot be cast to non-null type java.net.HttpURLConnection");
}
HttpURLConnection httpURLConnection = (HttpURLConnection) urlconnection_wrapInstance;
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setRequestProperty("Content-Type", "application/dns-message");
httpURLConnection.setRequestProperty("Accept", "application/dns-message");
httpURLConnection.setDoOutput(true);
return httpURLConnection;
}
public static final List<String> parseDnsResponse(byte[] bArr) {
Intrinsics.checkNotNullParameter(bArr, "input");
Iterator it = ArraysKt.withIndex(bArr).iterator();
int i = 0;
while (true) {
if (!it.hasNext()) {
i = -1;
break;
}
Object next = it.next();
if (i < 0) {
CollectionsKt.throwIndexOverflow();
}
IndexedValue indexedValue = (IndexedValue) next;
int component1 = indexedValue.component1();
byte byteValue = ((Number) indexedValue.component2()).byteValue();
if (component1 < 200 && ((char) byteValue) == '=' && component1 > 0 && getDOMAIN_CHARS().contains(Character.valueOf((char) bArr[component1 - 1]))) {
break;
}
i++;
}
if (i == -1) {
throw new DnsTxtParseError("Failed to parse TXT records from DNS");
}
byte[] copyOfRange = ArraysKt.copyOfRange(bArr, i - 1, bArr.length);
Charset charset = StandardCharsets.UTF_8;
Intrinsics.checkNotNullExpressionValue(charset, "UTF_8");
return StringsKt.split$default(new String(copyOfRange, charset), new String[]{","}, false, 0, 6, (Object) null);
}
}