正在查看: 050 IP Phone v2.3.0 应用的 j.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: 050 IP Phone v2.3.0 应用的 j.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package m5;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class j {
private static m5.b g;
private static p7.a h = s5.d.a(j.class);
private static ScheduledExecutorService i = Executors.newSingleThreadScheduledExecutor();
private q5.d a;
private String b;
private String c;
private y d;
private w e;
private Map<String, k> f = new HashMap();
private class b implements Runnable {
private k x;
@Override
public void run() {
if (j.h.c()) {
String n = this.x.d().g0().n();
j.h.a("TimerC expired,branch=[" + n + "]");
}
j.this.L(this.x);
}
private b(k kVar) {
this.x = kVar;
}
}
static {
try {
g = new m5.b("<sip:127.0.0.1;lr>;_dummy_");
} catch (o5.b e) {
h.h("Failed to create dummy Address", e);
}
}
public j(w wVar) {
this.d = wVar.L();
this.e = wVar;
N(wVar);
}
private void A(w wVar) {
q5.d F;
q5.f N0 = wVar.N0();
if (u().contains(N0) && (F = F(wVar)) != null) {
if (h.c()) {
h.a("replacing request URI with end of route,reqUri=[" + N0 + ",lastRoute=[" + F + "]");
}
wVar.U0(F);
}
q5.d O0 = wVar.O0();
if (O0 != null) {
if (O0.E() != null) {
O0 = (q5.d) O0.clone();
O0.P(null);
}
if (u().contains(O0)) {
if (h.c()) {
h.a("removing top Route header,topRoute=[" + O0 + "]");
}
H(wVar);
}
}
}
private void B(x xVar) {
k q = q(xVar.g0().n());
if (q == null) {
if (h.c()) {
h.a("No proxy branch found,branch=[" + xVar.g0().n() + "]");
return;
}
return;
}
if (xVar.P0() < 200) {
M(q);
}
xVar.z(100728920).l(0);
q.j(xVar);
if (xVar.P0() < 300) {
q.i(C(xVar).L());
}
synchronized (this) {
try {
if (j()) {
K();
}
} catch (Throwable th) {
throw th;
}
}
}
private x C(x xVar) {
x xVar2 = (x) xVar.clone();
xVar2.U0(this.e);
xVar2.A0(this.e.O());
xVar2.n0(this.e.o());
y w = w(xVar);
xVar2.y0(w);
if (x()) {
try {
w.m().l(xVar2);
} catch (i5.m e) {
h.l("Failed to process response", e);
} catch (Throwable th) {
h.l("Failed to process response", th);
}
}
try {
xVar2.i0();
} catch (IOException e8) {
h.h("Failed to proxy response, response=[" + xVar + "]", e8);
}
return xVar2;
}
private q5.d F(w wVar) {
n5.j z = wVar.z(201785414);
if (z == null || z.d() == 0) {
return null;
}
if (z.d() != 1) {
return (q5.d) ((n5.e) z.l(z.d() - 1)).b().l();
}
n5.e eVar = (n5.e) z.h(0);
wVar.h0(201785414);
return (q5.d) eVar.b().l();
}
private void G() {
if (this.e.V()) {
this.e.L().M();
}
for (k kVar : r()) {
x e = kVar.e();
if (e == null || ((!e.W() && !e.d0()) || 200 > e.P0() || e.P0() >= 300)) {
kVar.g().M();
y c = kVar.c();
if (c != null) {
c.M();
}
}
}
}
private void H(w wVar) {
n5.j z = wVar.z(201785414);
if (z != null) {
if (z.d() == 1) {
wVar.h0(201785414);
} else if (z.d() > 1) {
z.l(0);
}
}
}
private void J(k kVar) {
if (h.c()) {
String n = kVar.d().g0().n();
h.a("starting Timer C,branch=[" + n + "],timeout=[" + kVar.f() + "]");
}
kVar.k(i.schedule(new b(kVar), kVar.f(), TimeUnit.SECONDS));
}
private void K() {
if (h.c()) {
h.a("terminate proxy");
}
x t = t();
int P0 = t != null ? t.P0() : 408;
if (400 <= P0) {
x G0 = this.e.G0(P0);
String i8 = t != null ? t.N().i("tag") : null;
if (i8 != null) {
G0.N().t("tag", i8);
}
String x = t.x(65626);
if (x != null) {
G0.q0("WWW-Authenticate", x);
}
if (x()) {
try {
this.e.L().m().l(G0);
} catch (i5.m e) {
h.l("Failed to process response", e);
}
}
try {
G0.i0();
} catch (IOException e8) {
h.h("Failed to send final response", e8);
}
}
e();
G();
}
public void L(k kVar) {
synchronized (this) {
try {
d(kVar);
if (j()) {
K();
}
} catch (Throwable th) {
throw th;
}
}
}
private void M(k kVar) {
if (h.c()) {
String n = kVar.d().g0().n();
h.a("updating Timer C,branch=[" + n + "],timeout=[" + kVar.f() + "]");
}
}
private void N(w wVar) {
if (h.c()) {
h.a("verify request's validity");
}
i(wVar);
g(wVar);
f(wVar);
h(wVar);
}
private void c(w wVar, q5.f fVar) {
n5.j z = wVar.z(201785414);
n5.e eVar = new n5.e(new m5.b(fVar));
if (z == null) {
wVar.r0(new n5.j(201785414, eVar));
} else {
z.c(eVar);
}
}
private void d(k kVar) {
if (h.c()) {
String n = kVar.d().g0().n();
h.a("canceling branch,branch=[" + n + "]");
}
if (this.e.W() && !kVar.b()) {
try {
w d = kVar.d();
d.F0();
d.i0();
} catch (IOException e) {
h.h("Failed to cancel request", e);
}
}
kVar.a();
}
private void e() {
Iterator<k> it = r().iterator();
while (it.hasNext()) {
d(it.next());
}
}
private boolean j() {
Iterator<k> it = r().iterator();
while (it.hasNext()) {
if (!it.next().b()) {
return false;
}
}
return true;
}
private w k(q5.f fVar, w wVar) {
w wVar2 = (w) wVar.clone();
wVar2.U0(fVar);
int K0 = wVar2.K0();
if (K0 > 0) {
wVar2.R0(K0 - 1);
} else {
wVar2.R0(70);
}
if (v() && g != null) {
wVar2.d(201785402, new n5.e((m5.b) g.clone()));
}
z(wVar2);
n5.j z = wVar2.z(100728920);
n5.w wVar3 = new n5.w("SIP/2.0", 1, "127.0.0.1", -1);
wVar3.z(n5.t.a(wVar2));
z.b(0, wVar3);
return wVar2;
}
private w l(w wVar) {
w wVar2 = (w) this.e.clone();
wVar2.y0(n(wVar));
A(wVar2);
return wVar2;
}
private y n(w wVar) {
y L = wVar.L();
y p = L.H().p(wVar.N0(), wVar.n(), wVar.w(), wVar.N());
p.b0(3);
p.Y(L.m());
return p;
}
private z p(z zVar) {
z zVar2 = (z) zVar.clone();
zVar2.f(zVar.e());
zVar2.g(zVar.d());
return zVar2;
}
private k q(String str) {
k kVar;
synchronized (this.f) {
kVar = this.f.get(str);
}
return kVar;
}
private List<k> r() {
ArrayList arrayList;
synchronized (this.f) {
arrayList = new ArrayList(this.f.values());
}
return arrayList;
}
private x t() {
int P0;
Iterator<k> it = r().iterator();
x xVar = null;
while (it.hasNext()) {
x e = it.next().e();
if (e != null && (P0 = e.P0()) >= 200) {
if (P0 < 300) {
return e;
}
if (P0 >= 400) {
xVar = e;
}
}
}
return xVar;
}
private Set<q5.d> u() {
return this.d.y();
}
private synchronized y w(x xVar) {
y f;
try {
y L = xVar.L();
o H = L.H();
z p = p(L.n());
if (h.c()) {
h.a("looking for session to proxy response,sessionId=[" + p + "]");
}
f = H.f(p);
if (f == null) {
if (h.c()) {
h.a("creating session to proxy response,sessionId=[" + p + "]");
}
f = H.p(this.e.N0(), xVar.n(), xVar.N(), xVar.w());
f.b0(3);
f.Y(L.m());
}
} catch (Throwable th) {
throw th;
}
return f;
}
private q5.d y(w wVar) {
n5.e eVar = (n5.e) wVar.f0(201785402);
if (eVar == null) {
return null;
}
q5.f l = eVar.b().l();
if (l.h()) {
return (q5.d) l;
}
return null;
}
private void z(w wVar) {
q5.d O0 = wVar.O0();
if (O0 == null || O0.y()) {
return;
}
q5.f N0 = wVar.N0();
if (N0.h()) {
c(wVar, (q5.d) N0);
H(wVar);
wVar.U0(O0);
}
}
public void D(List<? extends q5.f> list) {
if (h.c()) {
h.a("proxying request");
}
m(list).iterator();
I();
}
public void E(q5.f fVar) {
ArrayList arrayList = new ArrayList(1);
arrayList.add(fVar);
D(arrayList);
}
public void I() {
for (k kVar : r()) {
try {
w d = kVar.d();
d.P0(s(d));
d.Q0(this.c);
if (this.b != null) {
y(d).P(this.b);
}
d.i0();
J(kVar);
} catch (IOException e) {
h.h("Failed to proxy request", e);
}
}
}
protected void f(w wVar) {
}
protected void g(w wVar) {
if (wVar.K0() == 0) {
throw new f0("Max-Forwards header field has zero value");
}
}
protected void h(w wVar) {
}
protected void i(w wVar) {
}
public List<k> m(List<? extends q5.f> list) {
ArrayList arrayList;
w l = l(this.e);
ArrayList arrayList2 = new ArrayList();
q5.f N0 = l.N0();
if (!N0.h() || ((q5.d) N0).c("maddr") == null) {
arrayList2.addAll(list);
} else {
arrayList2.add((q5.d) N0.clone());
}
synchronized (this.f) {
try {
Iterator it = arrayList2.iterator();
while (it.hasNext()) {
w k = k((q5.f) it.next(), l);
String n = k.g0().n();
k kVar = new k(this, k);
if (h.c()) {
String n8 = this.e.g0().n();
h.a("creating proxy branch,orig.branch=[" + n8 + "],forwarding.branch=[" + n + "]");
}
this.f.put(n, kVar);
}
arrayList = new ArrayList(this.f.values());
} catch (Throwable th) {
throw th;
}
}
return arrayList;
}
void o(x xVar) {
if (h.c()) {
h.a("response received");
}
if (xVar.T()) {
return;
}
n5.j z = xVar.z(100728920);
if (z == null || z.d() < 2) {
h.e("Unexpected Via header field found, ignore...");
} else {
B(xVar);
}
}
public q5.d s(w wVar) {
q5.d dVar = this.a;
if (dVar != null) {
return dVar;
}
n5.j z = wVar.z(201785414);
if (z != null && z.d() != 0) {
return (q5.d) ((n5.e) z.h(0)).b().l();
}
q5.f N0 = wVar.N0();
if (N0.h()) {
return (q5.d) N0;
}
return null;
}
public boolean v() {
return this.d.A();
}
public boolean x() {
return this.d.K();
}
}