McAfee Security v6.7.1.27版本的 MD5 值为:f931794df50c0876bab25b112d85d702

以下内容为反编译后的 VpnConnectionConfig.java 源代码,内容仅作参考


package com.tunnelbear.vpn.models;

import android.util.Log;
import com.tunnelbear.vpn.network.CidrBlock;
import com.tunnelbear.vpn.network.NetworkSpace;
import java.net.Inet6Address;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;
import kotlin.Metadata;
import kotlin.jvm.internal.Intrinsics;
import kotlin.text.StringsKt__StringsKt;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@Metadata(bv = {1, 0, 3}, d1 = {"\u00006\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\u0010\u000e\n\u0000\n\u0002\u0010\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\n\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0010!\n\u0002\b\u0006\n\u0002\u0010\b\n\u0002\b\u0012\u0018\u00002\u00020\u0001B\u0007¢\u0006\u0004\b/\u0010\u0011J\u0015\u0010\u0005\u001a\u00020\u00042\u0006\u0010\u0003\u001a\u00020\u0002¢\u0006\u0004\b\u0005\u0010\u0006J\u0015\u0010\t\u001a\u00020\u00042\u0006\u0010\b\u001a\u00020\u0007¢\u0006\u0004\b\t\u0010\nJ\u001d\u0010\t\u001a\u00020\u00042\u0006\u0010\u000b\u001a\u00020\u00022\u0006\u0010\f\u001a\u00020\u0002¢\u0006\u0004\b\t\u0010\rJ\u0015\u0010\u000f\u001a\u00020\u00042\u0006\u0010\u000e\u001a\u00020\u0002¢\u0006\u0004\b\u000f\u0010\u0006J\r\u0010\u0010\u001a\u00020\u0004¢\u0006\u0004\b\u0010\u0010\u0011R\u0019\u0010\u0013\u001a\u00020\u00128\u0006@\u0006¢\u0006\f\n\u0004\b\u0013\u0010\u0014\u001a\u0004\b\u0015\u0010\u0016R\u001f\u0010\u0018\u001a\b\u0012\u0004\u0012\u00020\u00020\u00178\u0006@\u0006¢\u0006\f\n\u0004\b\u0018\u0010\u0019\u001a\u0004\b\u001a\u0010\u001bR\u0019\u0010\u001c\u001a\u00020\u00128\u0006@\u0006¢\u0006\f\n\u0004\b\u001c\u0010\u0014\u001a\u0004\b\u001d\u0010\u0016R\"\u0010\u001f\u001a\u00020\u001e8\u0006@\u0006X\u0086\u000e¢\u0006\u0012\n\u0004\b\u001f\u0010 \u001a\u0004\b!\u0010\"\"\u0004\b#\u0010$R$\u0010%\u001a\u0004\u0018\u00010\u00028\u0006@\u0006X\u0086\u000e¢\u0006\u0012\n\u0004\b%\u0010&\u001a\u0004\b'\u0010(\"\u0004\b)\u0010\u0006R$\u0010*\u001a\u0004\u0018\u00010\u00078\u0006@\u0006X\u0086\u000e¢\u0006\u0012\n\u0004\b*\u0010+\u001a\u0004\b,\u0010-\"\u0004\b.\u0010\n¨\u00060"}, d2 = {"Lcom/tunnelbear/vpn/models/VpnConnectionConfig;", "", "", "dns", "", "addDNS", "(Ljava/lang/String;)V", "Lcom/tunnelbear/vpn/network/CidrBlock;", "route", "addRoute", "(Lcom/tunnelbear/vpn/network/CidrBlock;)V", "dest", "mask", "(Ljava/lang/String;Ljava/lang/String;)V", "network", "addRoutev6", "reset", "()V", "Lcom/tunnelbear/vpn/network/NetworkSpace;", "routes", "Lcom/tunnelbear/vpn/network/NetworkSpace;", "getRoutes", "()Lcom/tunnelbear/vpn/network/NetworkSpace;", "", "dnsList", "Ljava/util/List;", "getDnsList", "()Ljava/util/List;", "routesv6", "getRoutesv6", "", "mtu", "I", "getMtu", "()I", "setMtu", "(I)V", "localIPv6", "Ljava/lang/String;", "getLocalIPv6", "()Ljava/lang/String;", "setLocalIPv6", "localIp", "Lcom/tunnelbear/vpn/network/CidrBlock;", "getLocalIp", "()Lcom/tunnelbear/vpn/network/CidrBlock;", "setLocalIp", "<init>", "vpn-android_release"}, k = 1, mv = {1, 4, 0})
public final class VpnConnectionConfig {
    @Nullable
    private String localIPv6;
    @Nullable
    private CidrBlock localIp;
    private int mtu;
    @NotNull
    private final NetworkSpace routes = new NetworkSpace();
    @NotNull
    private final NetworkSpace routesv6 = new NetworkSpace();
    @NotNull
    private final List<String> dnsList = new ArrayList();

    public final void addDNS(@NotNull String dns) {
        Intrinsics.checkNotNullParameter(dns, "dns");
        this.dnsList.add(dns);
    }

    public final void addRoute(@NotNull CidrBlock route) {
        Intrinsics.checkNotNullParameter(route, "route");
        this.routes.addIPv4(route);
    }

    public final void addRoute(@NotNull String dest, @NotNull String mask) {
        Intrinsics.checkNotNullParameter(dest, "dest");
        Intrinsics.checkNotNullParameter(mask, "mask");
        CidrBlock fromMask = CidrBlock.Companion.fromMask(dest, mask);
        if (fromMask.getLength() == 32 && (!Intrinsics.areEqual(mask, "255.255.255.255"))) {
            Log.w("VpnConnectionConfig", "Given route is not CIDR: " + dest + " / " + mask);
        }
        if (fromMask.normalise()) {
            Log.w("VpnConnectionConfig", "Given route is not NetIP : " + dest + " : " + fromMask.getLength() + " : " + fromMask.getIp());
        }
        this.routes.addIPv4(fromMask);
    }

    public final void addRoutev6(@NotNull String network) {
        List split$default;
        Intrinsics.checkNotNullParameter(network, "network");
        split$default = StringsKt__StringsKt.split$default((CharSequence) network, new String[]{"/"}, false, 0, 6, (Object) null);
        try {
            InetAddress inetAddress = InetAddress.getAllByName((String) split$default.get(0))[0];
            if (inetAddress == null) {
                throw new NullPointerException("null cannot be cast to non-null type java.net.Inet6Address");
            }
            int parseInt = Integer.parseInt((String) split$default.get(1));
            this.routesv6.addIPv6((Inet6Address) inetAddress, parseInt);
        } catch (UnknownHostException e) {
            Log.e("VpnConnectionConfig", "UnknownHostException from addRoutev6: " + e.getMessage());
        }
    }

    @NotNull
    public final List<String> getDnsList() {
        return this.dnsList;
    }

    @Nullable
    public final String getLocalIPv6() {
        return this.localIPv6;
    }

    @Nullable
    public final CidrBlock getLocalIp() {
        return this.localIp;
    }

    public final int getMtu() {
        return this.mtu;
    }

    @NotNull
    public final NetworkSpace getRoutes() {
        return this.routes;
    }

    @NotNull
    public final NetworkSpace getRoutesv6() {
        return this.routesv6;
    }

    public final void reset() {
        this.dnsList.clear();
        this.routes.clear();
        this.routesv6.clear();
        this.localIp = null;
        this.localIPv6 = null;
    }

    public final void setLocalIPv6(@Nullable String str) {
        this.localIPv6 = str;
    }

    public final void setLocalIp(@Nullable CidrBlock cidrBlock) {
        this.localIp = cidrBlock;
    }

    public final void setMtu(int i) {
        this.mtu = i;
    }
}