正在查看: Plus 12 v10.13.1.1 应用的 ConnectionsManager$MozillaDnsLoadTask.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: Plus 12 v10.13.1.1 应用的 ConnectionsManager$MozillaDnsLoadTask.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package org.telegram.tgnet;
import android.os.AsyncTask;
import android.util.Base64;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import org.json.JSONArray;
import org.json.JSONObject;
import org.telegram.messenger.AccountInstance;
import org.telegram.messenger.BuildConfig;
import org.telegram.messenger.BuildVars;
import org.telegram.messenger.FileLog;
import org.telegram.messenger.R;
import org.telegram.messenger.Utilities;
public class ConnectionsManager$MozillaDnsLoadTask extends AsyncTask<Void, Void, NativeByteBuffer> {
public int currentAccount;
public int responseDate;
public ConnectionsManager$MozillaDnsLoadTask(int instance) {
this.currentAccount = instance;
}
@Override
public NativeByteBuffer doInBackground(Void... voids) {
ByteArrayOutputStream byteArrayOutputStream;
InputStream inputStream;
int read;
try {
String str = ConnectionsManager.native_isTestBackend(this.currentAccount) != 0 ? "tapv3.stel.com" : AccountInstance.getInstance(this.currentAccount).getMessagesController().dcDomainName;
int nextInt = Utilities.random.nextInt(R.styleable.AppCompatTheme_viewInflaterClass) + 13;
StringBuilder sb = new StringBuilder(nextInt);
for (int i = 0; i < nextInt; i++) {
sb.append("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(Utilities.random.nextInt(62)));
}
URLConnection openConnection = new URL("https://mozilla.cloudflare-dns.com/dns-query?name=" + str + "&type=TXT&random_padding=" + ((Object) sb)).openConnection();
openConnection.addRequestProperty("User-Agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 10_0 like Mac OS X) AppleWebKit/602.1.38 (KHTML, like Gecko) Version/10.0 Mobile/14A5297c Safari/602.1");
openConnection.addRequestProperty("accept", "application/dns-json");
openConnection.setConnectTimeout(5000);
openConnection.setReadTimeout(5000);
openConnection.connect();
InputStream inputStream2 = openConnection.getInputStream();
try {
this.responseDate = (int) (openConnection.getDate() / 1000);
ByteArrayOutputStream byteArrayOutputStream2 = new ByteArrayOutputStream();
try {
byte[] bArr = new byte[32768];
while (!isCancelled() && (read = inputStream2.read(bArr)) > 0) {
byteArrayOutputStream2.write(bArr, 0, read);
}
JSONArray jSONArray = new JSONObject(new String(byteArrayOutputStream2.toByteArray())).getJSONArray("Answer");
int length = jSONArray.length();
ArrayList arrayList = new ArrayList(length);
for (int i2 = 0; i2 < length; i2++) {
JSONObject jSONObject = jSONArray.getJSONObject(i2);
if (jSONObject.getInt("type") == 16) {
arrayList.add(jSONObject.getString("data"));
}
}
Collections.sort(arrayList, new Comparator() {
@Override
public final int compare(Object obj, Object obj2) {
int lambda$doInBackground$0;
lambda$doInBackground$0 = ConnectionsManager$MozillaDnsLoadTask.lambda$doInBackground$0((String) obj, (String) obj2);
return lambda$doInBackground$0;
}
});
StringBuilder sb2 = new StringBuilder();
for (int i3 = 0; i3 < arrayList.size(); i3++) {
sb2.append(((String) arrayList.get(i3)).replace("\"", BuildConfig.APP_CENTER_HASH));
}
byte[] decode = Base64.decode(sb2.toString(), 0);
NativeByteBuffer nativeByteBuffer = new NativeByteBuffer(decode.length);
nativeByteBuffer.writeBytes(decode);
if (inputStream2 != null) {
try {
inputStream2.close();
} catch (Throwable th) {
FileLog.e(th);
}
}
try {
byteArrayOutputStream2.close();
} catch (Exception unused) {
}
return nativeByteBuffer;
} catch (Throwable th2) {
byteArrayOutputStream = byteArrayOutputStream2;
th = th2;
inputStream = inputStream2;
try {
FileLog.e(th, false);
if (inputStream != null) {
try {
inputStream.close();
} catch (Throwable th3) {
FileLog.e(th3);
}
}
if (byteArrayOutputStream != null) {
try {
byteArrayOutputStream.close();
} catch (Exception unused2) {
}
}
return null;
} catch (Throwable th4) {
if (inputStream != null) {
try {
inputStream.close();
} catch (Throwable th5) {
FileLog.e(th5);
}
}
if (byteArrayOutputStream != null) {
try {
byteArrayOutputStream.close();
} catch (Exception unused3) {
}
}
throw th4;
}
}
} catch (Throwable th6) {
th = th6;
inputStream = inputStream2;
byteArrayOutputStream = null;
}
} catch (Throwable th7) {
th = th7;
byteArrayOutputStream = null;
inputStream = null;
}
}
public static int lambda$doInBackground$0(String str, String str2) {
int length = str.length();
int length2 = str2.length();
if (length > length2) {
return -1;
}
return length < length2 ? 1 : 0;
}
@Override
public void onPostExecute(final NativeByteBuffer result) {
Utilities.stageQueue.postRunnable(new Runnable() {
@Override
public final void run() {
ConnectionsManager$MozillaDnsLoadTask.this.lambda$onPostExecute$1(result);
}
});
}
public void lambda$onPostExecute$1(NativeByteBuffer nativeByteBuffer) {
FileLog.d("5. currentTask = null");
ConnectionsManager.-$$Nest$sfputcurrentTask((AsyncTask) null);
if (nativeByteBuffer != null) {
int i = this.currentAccount;
ConnectionsManager.native_applyDnsConfig(i, nativeByteBuffer.address, AccountInstance.getInstance(i).getUserConfig().getClientPhone(), this.responseDate);
} else if (BuildVars.LOGS_ENABLED) {
FileLog.d("failed to get mozilla txt result");
}
}
}