导航菜单

页面标题

页面副标题

050 IP Phone v2.3.0 - j.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();
    }
}