正在查看: 饼干视频 v4.1.0 应用的 h.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: 饼干视频 v4.1.0 应用的 h.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.octopus.ad.internal.b;
import android.content.Context;
import android.net.Uri;
import com.octopus.ad.internal.utilities.HaoboLog;
import java.io.File;
import java.io.IOException;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketException;
import java.util.Iterator;
import java.util.Locale;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class h {
private final Object a;
private final ExecutorService b;
private final Map<String, i> c;
private final ServerSocket d;
private final int e;
private final Thread f;
private final com.octopus.ad.internal.b.c g;
private final m h;
public static final class a {
private File a;
private com.octopus.ad.internal.b.b.c d;
private com.octopus.ad.internal.b.a.a c = new com.octopus.ad.internal.b.a.g(536870912);
private com.octopus.ad.internal.b.a.c b = new com.octopus.ad.internal.b.a.f();
private f e = new d();
public a(Context context) {
this.d = com.octopus.ad.internal.b.b.d.a(context);
this.a = t.a(context);
}
private com.octopus.ad.internal.b.c b() {
return new com.octopus.ad.internal.b.c(this.a, this.b, this.c, this.d, this.e);
}
public a a(long j) {
this.c = new com.octopus.ad.internal.b.a.g(j);
return this;
}
public h a() {
return new h(b());
}
}
public final class b implements Runnable {
private final Socket b;
public b(Socket socket) {
this.b = socket;
}
@Override
public void run() {
h.this.a(this.b);
}
}
public final class c implements Runnable {
private final CountDownLatch b;
public c(CountDownLatch countDownLatch) {
this.b = countDownLatch;
}
@Override
public void run() {
this.b.countDown();
h.this.b();
}
}
private String c(String str) {
return String.format(Locale.US, "http://%s:%d/%s", "127.0.0.1", Integer.valueOf(this.e), q.b(str));
}
private File d(String str) {
com.octopus.ad.internal.b.c cVar = this.g;
return new File(cVar.a, cVar.b.a(str));
}
private i e(String str) throws p {
i iVar;
synchronized (this.a) {
iVar = this.c.get(str);
if (iVar == null) {
iVar = new i(str, this.g);
this.c.put(str, iVar);
}
}
return iVar;
}
public boolean b(String str) {
n.a(str, "Url can't be null!");
return d(str).exists();
}
private h(com.octopus.ad.internal.b.c cVar) {
this.a = new Object();
this.b = Executors.newFixedThreadPool(8);
this.c = new ConcurrentHashMap();
this.g = (com.octopus.ad.internal.b.c) n.a(cVar);
try {
ServerSocket serverSocket = new ServerSocket(0, 8, InetAddress.getByName("127.0.0.1"));
this.d = serverSocket;
int localPort = serverSocket.getLocalPort();
this.e = localPort;
k.a("127.0.0.1", localPort);
CountDownLatch countDownLatch = new CountDownLatch(1);
Thread thread = new Thread(new c(countDownLatch));
this.f = thread;
thread.start();
countDownLatch.await();
this.h = new m("127.0.0.1", localPort);
HaoboLog.i(HaoboLog.httpProxyCacheServerLogTag, "Proxy cache server started. Is it alive? " + a());
} catch (Exception e) {
this.b.shutdown();
throw new IllegalStateException("Error starting local proxy server", e);
}
}
private int c() {
int i;
synchronized (this.a) {
i = 0;
Iterator<i> it = this.c.values().iterator();
while (it.hasNext()) {
i += it.next().a();
}
}
return i;
}
public void b() {
while (!Thread.currentThread().isInterrupted()) {
try {
Socket accept = this.d.accept();
HaoboLog.d(HaoboLog.httpProxyCacheServerLogTag, "Accept new socket " + accept);
this.b.submit(new b(accept));
} catch (Exception e) {
a(new p("Error during waiting connection", e));
return;
}
}
}
public String a(String str) {
return a(str, true);
}
private void d(Socket socket) {
try {
if (socket.isOutputShutdown()) {
return;
}
socket.shutdownOutput();
} catch (Exception e) {
HaoboLog.w(HaoboLog.httpProxyCacheServerLogTag, "Failed to close socket on proxy side: {}. It seems client have already closed connection.", e);
}
}
public String a(String str, boolean z) {
if (!z || !b(str)) {
return a() ? c(str) : str;
}
File d = d(str);
a(d);
return Uri.fromFile(d).toString();
}
private void c(Socket socket) {
try {
if (socket.isInputShutdown()) {
return;
}
socket.shutdownInput();
} catch (SocketException unused) {
HaoboLog.e(HaoboLog.httpProxyCacheServerLogTag, "Releasing input stream… Socket is closed by client.");
} catch (Exception e) {
a(new p("Error closing socket input stream", e));
}
}
private void e(Socket socket) {
try {
if (socket.isClosed()) {
return;
}
socket.close();
} catch (Exception e) {
a(new p("Error closing socket", e));
}
}
private void b(Socket socket) {
c(socket);
d(socket);
e(socket);
}
public void a(com.octopus.ad.internal.b.b bVar, String str) {
n.a(bVar, str);
synchronized (this.a) {
try {
e(str).a(bVar);
} catch (p e) {
HaoboLog.w(HaoboLog.httpProxyCacheServerLogTag, "Error registering cache listener", e);
}
}
}
public void a(com.octopus.ad.internal.b.b bVar) {
n.a(bVar);
synchronized (this.a) {
Iterator<i> it = this.c.values().iterator();
while (it.hasNext()) {
it.next().b(bVar);
}
}
}
private boolean a() {
return this.h.a(3, 70);
}
private void a(File file) {
try {
this.g.c.a(file);
} catch (Exception e) {
HaoboLog.e(HaoboLog.httpProxyCacheServerLogTag, "Error touching file " + file, e);
}
}
public void a(Socket socket) {
String str;
StringBuilder sb;
try {
try {
e a2 = e.a(socket.getInputStream());
HaoboLog.d(HaoboLog.httpProxyCacheServerLogTag, "Request to cache proxy:" + a2);
String c2 = q.c(a2.a);
if (this.h.a(c2)) {
this.h.a(socket);
} else {
e(c2).a(a2, socket);
}
b(socket);
str = HaoboLog.httpProxyCacheServerLogTag;
sb = new StringBuilder();
} catch (p e) {
e = e;
a(new p("Error processing request", e));
b(socket);
str = HaoboLog.httpProxyCacheServerLogTag;
sb = new StringBuilder();
} catch (SocketException unused) {
HaoboLog.e(HaoboLog.httpProxyCacheServerLogTag, "Closing socket… Socket is closed by client.");
b(socket);
str = HaoboLog.httpProxyCacheServerLogTag;
sb = new StringBuilder();
} catch (IOException e2) {
e = e2;
a(new p("Error processing request", e));
b(socket);
str = HaoboLog.httpProxyCacheServerLogTag;
sb = new StringBuilder();
}
sb.append("Opened connections: ");
sb.append(c());
HaoboLog.d(str, sb.toString());
} catch (Throwable th) {
b(socket);
HaoboLog.d(HaoboLog.httpProxyCacheServerLogTag, "Opened connections: " + c());
throw th;
}
}
private void a(Throwable th) {
HaoboLog.e(HaoboLog.httpProxyCacheServerLogTag, "HttpProxyCacheServer error", th);
}
}