package com.seewo.vcommons.helper;

import a.b.c.a.a;
import android.util.Log;
import com.seewo.vcommons.utils.ShellCommandUtils;
import java.util.Arrays;
import java.util.Iterator;
import java.util.LinkedList;

/* JADX INFO: loaded from: classes.dex */
public class PortMappingHelper {
    public static final String CUSTOM_CHAIN_NAME = "custom_dnat_chain";
    private static final String OP_ADD = "-A";
    public static final String TAG = "PortMappingHelper";
    private static volatile PortMappingHelper sPortMappingHelper;

    public static class DNATBuilder {
        private String chain;
        private String fromIP;
        private String fromPort;
        private String multiSourcePorts;
        private String op;
        private String protocol;
        private String toIP;
        private String toPort;

        /* JADX WARN: Removed duplicated region for block: B:11:0x008e  */
        /*
            Code decompiled incorrectly, please refer to instructions dump.
            To view partially-correct add '--show-bad-code' argument
        */
        public java.lang.String build() {
            /*
                r4 = this;
                java.lang.String r0 = "iptables -t nat"
                java.lang.StringBuilder r0 = a.b.c.a.a.C(r0)
                java.lang.String r1 = " "
                java.lang.StringBuilder r2 = a.b.c.a.a.C(r1)
                java.lang.String r3 = r4.op
                r2.append(r3)
                r2.append(r1)
                java.lang.String r1 = r4.chain
                r2.append(r1)
                java.lang.String r1 = r2.toString()
                r0.append(r1)
                java.lang.StringBuilder r1 = new java.lang.StringBuilder
                r1.<init>()
                java.lang.String r2 = " -d "
                r1.append(r2)
                java.lang.String r2 = r4.fromIP
                r1.append(r2)
                java.lang.String r1 = r1.toString()
                r0.append(r1)
                java.lang.StringBuilder r1 = new java.lang.StringBuilder
                r1.<init>()
                java.lang.String r2 = " -p "
                r1.append(r2)
                java.lang.String r2 = r4.protocol
                r1.append(r2)
                java.lang.String r1 = r1.toString()
                r0.append(r1)
                java.lang.String r1 = r4.multiSourcePorts
                if (r1 == 0) goto L59
                java.lang.String r1 = " -m multiport --dports "
                java.lang.StringBuilder r1 = a.b.c.a.a.C(r1)
                java.lang.String r2 = r4.multiSourcePorts
                goto L65
            L59:
                java.lang.String r1 = r4.fromPort
                if (r1 == 0) goto L6f
                java.lang.String r1 = " --dport "
                java.lang.StringBuilder r1 = a.b.c.a.a.C(r1)
                java.lang.String r2 = r4.fromPort
            L65:
                r1.append(r2)
                java.lang.String r1 = r1.toString()
                r0.append(r1)
            L6f:
                java.lang.String r1 = " -j DNAT"
                r0.append(r1)
                java.lang.StringBuilder r1 = new java.lang.StringBuilder
                r1.<init>()
                java.lang.String r2 = " --to-destination "
                r1.append(r2)
                java.lang.String r2 = r4.toIP
                r1.append(r2)
                java.lang.String r1 = r1.toString()
                r0.append(r1)
                java.lang.String r1 = r4.toPort
                if (r1 == 0) goto La0
                java.lang.String r1 = ":"
                java.lang.StringBuilder r1 = a.b.c.a.a.C(r1)
                java.lang.String r2 = r4.toPort
                r1.append(r2)
                java.lang.String r1 = r1.toString()
                r0.append(r1)
            La0:
                java.lang.String r0 = r0.toString()
                return r0
            */
            throw new UnsupportedOperationException("Method not decompiled: com.seewo.vcommons.helper.PortMappingHelper.DNATBuilder.build():java.lang.String");
        }

        public DNATBuilder setChain(String str) {
            this.chain = str;
            return this;
        }

        public DNATBuilder setFromIP(String str) {
            this.fromIP = str;
            return this;
        }

        public DNATBuilder setFromPort(String str) {
            this.fromPort = str;
            this.multiSourcePorts = null;
            return this;
        }

        public DNATBuilder setMultiSourcePorts(String str) {
            this.multiSourcePorts = str;
            this.fromPort = null;
            this.toPort = null;
            return this;
        }

        public DNATBuilder setOp(String str) {
            this.op = str;
            return this;
        }

        public DNATBuilder setProtocol(String str) {
            this.protocol = str;
            return this;
        }

        public DNATBuilder setToIP(String str) {
            this.toIP = str;
            return this;
        }

        public DNATBuilder setToPort(String str) {
            this.toPort = str;
            this.multiSourcePorts = null;
            return this;
        }
    }

    private void addBeforeAndAfter(int i2, LinkedList<Integer> linkedList, LinkedList<Integer> linkedList2) {
        int i3 = i2 - 1;
        int i4 = i2 + 1;
        while (linkedList.contains(Integer.valueOf(i3))) {
            linkedList.remove(Integer.valueOf(i3));
            i3--;
        }
        if (i3 > 0 && !linkedList2.contains(Integer.valueOf(i3))) {
            linkedList.add(Integer.valueOf(i3));
        }
        while (linkedList.contains(Integer.valueOf(i4))) {
            linkedList.remove(Integer.valueOf(i3));
            i4++;
        }
        if (i4 >= 65536 || linkedList2.contains(Integer.valueOf(i4))) {
            return;
        }
        linkedList.add(Integer.valueOf(i4));
    }

    private void applyChainTo(String str, String str2, String str3) {
        execute("iptables -t nat " + str3 + " " + str2 + " -j " + str);
    }

    private void execute(String str) {
        ShellCommandUtils.CommandResult commandResultExecuteCommand = ShellCommandUtils.executeCommand(str);
        Log.i(TAG, "create chain cmd: " + str);
        Log.i(TAG, "create chain result= " + commandResultExecuteCommand.errorMsg + " " + commandResultExecuteCommand.successMsg);
    }

    public static PortMappingHelper getInstance() {
        if (sPortMappingHelper == null) {
            synchronized (PortMappingHelper.class) {
                if (sPortMappingHelper == null) {
                    sPortMappingHelper = new PortMappingHelper();
                }
            }
        }
        return sPortMappingHelper;
    }

    public void clearAll() {
        execute("iptables -t nat -F custom_dnat_chain");
    }

    public void createCustomChain(String str) {
        execute(a.p("iptables -t nat -N ", str));
    }

    public String getRestPorts(int[] iArr) {
        int i2;
        Arrays.sort(iArr);
        LinkedList<Integer> linkedList = new LinkedList<>();
        for (int i3 : iArr) {
            if (!linkedList.contains(Integer.valueOf(i3))) {
                linkedList.add(Integer.valueOf(i3));
            }
        }
        LinkedList<Integer> linkedList2 = new LinkedList<>();
        linkedList2.addFirst(1);
        Iterator<Integer> it = linkedList.iterator();
        while (it.hasNext()) {
            addBeforeAndAfter(it.next().intValue(), linkedList2, linkedList);
        }
        linkedList2.addLast(65535);
        StringBuilder sb = new StringBuilder();
        for (int i4 = 0; i4 < linkedList2.size(); i4++) {
            if (i4 % 2 != 1 && (i2 = i4 + 1) < linkedList2.size()) {
                sb.append(linkedList2.get(i4));
                sb.append(":");
                sb.append(linkedList2.get(i2));
                sb.append(",");
            }
        }
        sb.deleteCharAt(sb.length() - 1);
        return sb.toString();
    }

    public String getTranslatedPorts(int[] iArr) {
        Arrays.sort(iArr);
        StringBuilder sb = new StringBuilder();
        for (int i2 : iArr) {
            if (i2 <= 65535) {
                sb.append(i2);
                sb.append(",");
            }
        }
        sb.deleteCharAt(sb.length() - 1);
        return sb.toString();
    }

    public void initDnatChain() {
        createCustomChain(CUSTOM_CHAIN_NAME);
        applyChainTo(CUSTOM_CHAIN_NAME, "PREROUTING", OP_ADD);
    }

    public void mapAll(String str, String str2, String str3) {
        DNATBuilder dNATBuilder = new DNATBuilder();
        dNATBuilder.setChain(CUSTOM_CHAIN_NAME).setMultiSourcePorts(str3).setFromIP(str).setToIP(str2).setOp(OP_ADD).setProtocol("tcp");
        execute(dNATBuilder.build());
        dNATBuilder.setProtocol("udp");
        execute(dNATBuilder.build());
    }
}
