package org.snmp4j.agent.mo.snmp;

import java.util.ArrayList;
import java.util.List;
import java.util.TreeMap;
import org.snmp4j.agent.DuplicateRegistrationException;
import org.snmp4j.agent.MOGroup;
import org.snmp4j.agent.MOServer;
import org.snmp4j.agent.mo.DefaultMOMutableRow2PC;
import org.snmp4j.agent.mo.DefaultMOMutableRow2PCFactory;
import org.snmp4j.agent.mo.DefaultMOMutableTableModel;
import org.snmp4j.agent.mo.DefaultMOTable;
import org.snmp4j.agent.mo.MOAccessImpl;
import org.snmp4j.agent.mo.MOColumn;
import org.snmp4j.agent.mo.MOMutableColumn;
import org.snmp4j.agent.mo.MOTableIndex;
import org.snmp4j.agent.mo.MOTableRowFilter;
import org.snmp4j.agent.mo.MOTableSubIndex;
import org.snmp4j.agent.mo.MOValueValidationEvent;
import org.snmp4j.agent.mo.MOValueValidationListener;
import org.snmp4j.agent.mo.snmp.RowStatus;
import org.snmp4j.log.LogAdapter;
import org.snmp4j.log.LogFactory;
import org.snmp4j.smi.Integer32;
import org.snmp4j.smi.OID;
import org.snmp4j.smi.OctetString;
import org.snmp4j.smi.Variable;
import org.snmp4j.smi.VariableBinding;

/* JADX INFO: loaded from: classes.dex */
public class SnmpNotificationMIB implements MOGroup {
    public static final int colSnmpNotifyFilterMask = 2;
    public static final int colSnmpNotifyFilterProfileName = 1;
    public static final int colSnmpNotifyFilterProfileRowStatus = 3;
    public static final int colSnmpNotifyFilterProfileStorType = 2;
    public static final int colSnmpNotifyFilterRowStatus = 5;
    public static final int colSnmpNotifyFilterStorageType = 4;
    public static final int colSnmpNotifyFilterType = 3;
    public static final int colSnmpNotifyRowStatus = 5;
    public static final int colSnmpNotifyStorageType = 4;
    public static final int colSnmpNotifyTag = 2;
    public static final int colSnmpNotifyType = 3;
    public static final int idxSnmpNotifyFilterMask = 0;
    public static final int idxSnmpNotifyFilterProfileName = 0;
    public static final int idxSnmpNotifyFilterProfileRowStatus = 2;
    public static final int idxSnmpNotifyFilterProfileStorType = 1;
    public static final int idxSnmpNotifyFilterRowStatus = 3;
    public static final int idxSnmpNotifyFilterStorageType = 2;
    public static final int idxSnmpNotifyFilterSubtree = 1;
    public static final int idxSnmpNotifyFilterType = 1;
    public static final int idxSnmpNotifyRowStatus = 3;
    public static final int idxSnmpNotifyStorageType = 2;
    public static final int idxSnmpNotifyTag = 0;
    public static final int idxSnmpNotifyType = 1;
    private static final LogAdapter logger = LogFactory.getLogger(SnmpNotificationMIB.class);
    public static final OID oidSnmpNotifyEntry = new OID(new int[]{1, 3, 6, 1, 6, 3, 13, 1, 1, 1});
    public static final OID oidSnmpNotifyFilterEntry;
    public static final OID oidSnmpNotifyFilterProfileEntry;
    private static MOTableIndex snmpNotifyEntryIndex;
    private static MOTableSubIndex[] snmpNotifyEntryIndexes;
    private static MOTableIndex snmpNotifyFilterEntryIndex;
    private static MOTableSubIndex[] snmpNotifyFilterEntryIndexes;
    private static MOTableIndex snmpNotifyFilterProfileEntryIndex;
    private static MOTableSubIndex[] snmpNotifyFilterProfileEntryIndexes;
    private DefaultMOTable<DefaultMOMutableRow2PC, MOColumn, DefaultMOMutableTableModel<DefaultMOMutableRow2PC>> snmpNotifyEntry;
    private DefaultMOMutableTableModel<DefaultMOMutableRow2PC> snmpNotifyEntryModel;
    private DefaultMOTable<DefaultMOMutableRow2PC, MOColumn, DefaultMOMutableTableModel<DefaultMOMutableRow2PC>> snmpNotifyFilterEntry;
    private DefaultMOMutableTableModel<DefaultMOMutableRow2PC> snmpNotifyFilterEntryModel;
    private DefaultMOTable<DefaultMOMutableRow2PC, MOColumn, DefaultMOMutableTableModel<DefaultMOMutableRow2PC>> snmpNotifyFilterProfileEntry;
    private DefaultMOMutableTableModel<DefaultMOMutableRow2PC> snmpNotifyFilterProfileEntryModel;

    static class SnmpNotifyFilterMaskValidator implements MOValueValidationListener {
        SnmpNotifyFilterMaskValidator() {
        }

        @Override // org.snmp4j.agent.mo.MOValueValidationListener
        public void validate(MOValueValidationEvent mOValueValidationEvent) {
            OctetString octetString = (OctetString) mOValueValidationEvent.getNewValue();
            if (octetString.length() < 0 || octetString.length() > 16) {
                mOValueValidationEvent.setValidationStatus(8);
            }
        }
    }

    public static final class SnmpNotifyFilterTypeEnum {
        public static final int excluded = 2;
        public static final int included = 1;
    }

    public static final class SnmpNotifyTypeEnum {
        public static final int inform = 2;
        public static final int trap = 1;
    }

    static {
        MOTableSubIndex[] mOTableSubIndexArr = {new MOTableSubIndex(4, 1, 32)};
        snmpNotifyEntryIndexes = mOTableSubIndexArr;
        snmpNotifyEntryIndex = new MOTableIndex(mOTableSubIndexArr, true);
        oidSnmpNotifyFilterEntry = new OID(new int[]{1, 3, 6, 1, 6, 3, 13, 1, 3, 1});
        MOTableSubIndex[] mOTableSubIndexArr2 = {new MOTableSubIndex(4, 1, 32), new MOTableSubIndex(6, 0, 128)};
        snmpNotifyFilterEntryIndexes = mOTableSubIndexArr2;
        snmpNotifyFilterEntryIndex = new MOTableIndex(mOTableSubIndexArr2, true);
        oidSnmpNotifyFilterProfileEntry = new OID(new int[]{1, 3, 6, 1, 6, 3, 13, 1, 2, 1});
        MOTableSubIndex[] mOTableSubIndexArr3 = {new MOTableSubIndex(4, 1, 32)};
        snmpNotifyFilterProfileEntryIndexes = mOTableSubIndexArr3;
        snmpNotifyFilterProfileEntryIndex = new MOTableIndex(mOTableSubIndexArr3, true);
    }

    public SnmpNotificationMIB() {
        createSnmpNotifyEntry();
        createSnmpNotifyFilterEntry();
        createSnmpNotifyFilterProfileEntry();
    }

    private void createSnmpNotifyEntry() {
        this.snmpNotifyEntry = new DefaultMOTable<>(oidSnmpNotifyEntry, snmpNotifyEntryIndex, new MOColumn[]{new SnmpTagValue(2, MOAccessImpl.ACCESS_READ_CREATE, new OctetString(new byte[0]), true), new Enumerated(3, 2, MOAccessImpl.ACCESS_READ_CREATE, new Integer32(1), true, new int[]{1, 2}), new StorageType(4, MOAccessImpl.ACCESS_READ_CREATE, new Integer32(3), true), new RowStatus(5)});
        DefaultMOMutableTableModel<DefaultMOMutableRow2PC> defaultMOMutableTableModel = new DefaultMOMutableTableModel<>();
        this.snmpNotifyEntryModel = defaultMOMutableTableModel;
        defaultMOMutableTableModel.setRowFactory(new DefaultMOMutableRow2PCFactory());
        this.snmpNotifyEntry.setModel(this.snmpNotifyEntryModel);
    }

    private void createSnmpNotifyFilterEntry() {
        ((MOMutableColumn) mOColumnArr[0]).addMOValueValidationListener(new SnmpNotifyFilterMaskValidator());
        MOColumn[] mOColumnArr = {new MOMutableColumn(2, 4, MOAccessImpl.ACCESS_READ_CREATE, new OctetString(new byte[0]), true), new Enumerated(3, 2, MOAccessImpl.ACCESS_READ_CREATE, new Integer32(1), true, new int[]{1, 2}), new StorageType(4, MOAccessImpl.ACCESS_READ_CREATE, new Integer32(3), true), new RowStatus(5)};
        this.snmpNotifyFilterEntry = new DefaultMOTable<>(oidSnmpNotifyFilterEntry, snmpNotifyFilterEntryIndex, mOColumnArr);
        DefaultMOMutableTableModel<DefaultMOMutableRow2PC> defaultMOMutableTableModel = new DefaultMOMutableTableModel<>();
        this.snmpNotifyFilterEntryModel = defaultMOMutableTableModel;
        defaultMOMutableTableModel.setRowFactory(new DefaultMOMutableRow2PCFactory());
        this.snmpNotifyFilterEntry.setModel(this.snmpNotifyFilterEntryModel);
    }

    private void createSnmpNotifyFilterProfileEntry() {
        this.snmpNotifyFilterProfileEntry = new DefaultMOTable<>(oidSnmpNotifyFilterProfileEntry, snmpNotifyFilterProfileEntryIndex, new MOColumn[]{new SnmpAdminString(1, MOAccessImpl.ACCESS_READ_CREATE, new OctetString(), true, 1, 32), new StorageType(2, MOAccessImpl.ACCESS_READ_CREATE, new Integer32(3), true), new RowStatus(3)});
        DefaultMOMutableTableModel<DefaultMOMutableRow2PC> defaultMOMutableTableModel = new DefaultMOMutableTableModel<>();
        this.snmpNotifyFilterProfileEntryModel = defaultMOMutableTableModel;
        defaultMOMutableTableModel.setRowFactory(new DefaultMOMutableRow2PCFactory());
        this.snmpNotifyFilterProfileEntry.setModel(this.snmpNotifyFilterProfileEntryModel);
    }

    private static boolean isInSubtree(OID oid, OID oid2, OctetString octetString) {
        OID oidMask = oid2.mask(octetString);
        OID oidMask2 = oid.mask(octetString);
        if (oidMask2.equals(oidMask)) {
            return true;
        }
        return oidMask2.startsWith(oidMask);
    }

    public boolean addNotifyEntry(OctetString octetString, OctetString octetString2, int i2, int i3) {
        Variable[] variableArr = new Variable[this.snmpNotifyEntry.getColumnCount()];
        variableArr[0] = octetString2;
        variableArr[1] = new Integer32(i2);
        variableArr[2] = new Integer32(i3);
        variableArr[3] = new Integer32(1);
        this.snmpNotifyEntry.addRow((DefaultMOMutableRow2PC) this.snmpNotifyEntry.createRow(octetString.toSubIndex(true), variableArr));
        return true;
    }

    public DefaultMOTable<DefaultMOMutableRow2PC, MOColumn, DefaultMOMutableTableModel<DefaultMOMutableRow2PC>> getNotifyFilterProfileTable() {
        return this.snmpNotifyFilterProfileEntry;
    }

    public DefaultMOTable<DefaultMOMutableRow2PC, MOColumn, DefaultMOMutableTableModel<DefaultMOMutableRow2PC>> getNotifyFilterTable() {
        return this.snmpNotifyFilterEntry;
    }

    public DefaultMOTable<DefaultMOMutableRow2PC, MOColumn, DefaultMOMutableTableModel<DefaultMOMutableRow2PC>> getNotifyTable() {
        return this.snmpNotifyEntry;
    }

    public boolean hasFilter(final OctetString octetString) {
        boolean zHasNext;
        MOTableRowFilter<DefaultMOMutableRow2PC> mOTableRowFilter = new MOTableRowFilter<DefaultMOMutableRow2PC>() { // from class: org.snmp4j.agent.mo.snmp.SnmpNotificationMIB.1
            @Override // org.snmp4j.agent.mo.MOTableRowFilter
            public boolean passesFilter(DefaultMOMutableRow2PC defaultMOMutableRow2PC) {
                Integer32 integer32 = (Integer32) defaultMOMutableRow2PC.getValue(2);
                return integer32 != null && integer32.getValue() == 1 && octetString.equals(defaultMOMutableRow2PC.getValue(0));
            }
        };
        synchronized (this.snmpNotifyFilterProfileEntryModel) {
            zHasNext = this.snmpNotifyFilterProfileEntryModel.iterator(mOTableRowFilter).hasNext();
        }
        return zHasNext;
    }

    public boolean passesFilter(final OctetString octetString, OID oid, VariableBinding[] variableBindingArr) {
        return passesFilter(oid, variableBindingArr, this.snmpNotifyFilterProfileEntryModel.getRows(null, null, new MOTableRowFilter<DefaultMOMutableRow2PC>() { // from class: org.snmp4j.agent.mo.snmp.SnmpNotificationMIB.2
            @Override // org.snmp4j.agent.mo.MOTableRowFilter
            public boolean passesFilter(DefaultMOMutableRow2PC defaultMOMutableRow2PC) {
                Integer32 integer32 = (Integer32) defaultMOMutableRow2PC.getValue(2);
                return integer32 != null && integer32.getValue() == 1 && octetString.equals(defaultMOMutableRow2PC.getValue(0));
            }
        }));
    }

    @Override // org.snmp4j.agent.MOGroup
    public void registerMOs(MOServer mOServer, OctetString octetString) throws DuplicateRegistrationException {
        mOServer.register(this.snmpNotifyEntry, octetString);
        mOServer.register(this.snmpNotifyFilterEntry, octetString);
        mOServer.register(this.snmpNotifyFilterProfileEntry, octetString);
    }

    public boolean removeNotifyEntry(OctetString octetString) {
        return this.snmpNotifyEntry.removeRow(octetString.toSubIndex(true)) != null;
    }

    @Override // org.snmp4j.agent.MOGroup
    public void unregisterMOs(MOServer mOServer, OctetString octetString) {
        mOServer.unregister(this.snmpNotifyEntry, octetString);
        mOServer.unregister(this.snmpNotifyFilterEntry, octetString);
        mOServer.unregister(this.snmpNotifyFilterProfileEntry, octetString);
    }

    public boolean passesFilter(OID oid, OID oid2, VariableBinding[] variableBindingArr) {
        return passesFilter(oid2, variableBindingArr, this.snmpNotifyFilterProfileEntryModel.getRows(oid, oid.successor(), new RowStatus.ActiveRowsFilter(2)));
    }

    private boolean passesFilter(OID oid, VariableBinding[] variableBindingArr, List<DefaultMOMutableRow2PC> list) {
        if (list.size() == 0) {
            return true;
        }
        OctetString octetString = (OctetString) list.get(0).getValue(0);
        OID subIndex = octetString.toSubIndex(false);
        List<R> rows = this.snmpNotifyFilterEntryModel.getRows(subIndex, subIndex.nextPeer(), new RowStatus.ActiveRowsFilter(3));
        if (rows.size() == 0) {
            return false;
        }
        TreeMap treeMap = new TreeMap();
        ArrayList arrayList = new ArrayList(variableBindingArr.length);
        for (R r : rows) {
            OID oid2 = (OID) snmpNotifyFilterEntryIndex.getIndexValues(r.getIndex())[1];
            OctetString octetString2 = (OctetString) r.getValue(0);
            Integer32 integer32 = (Integer32) r.getValue(1);
            OID oid3 = new OID();
            oid3.append(oid2.size());
            oid3.append(oid2);
            if (isInSubtree(oid, oid2, octetString2)) {
                treeMap.put(oid3, integer32);
            }
            for (int i2 = 0; i2 < variableBindingArr.length; i2++) {
                if (isInSubtree(variableBindingArr[i2].getOid(), oid2, octetString2)) {
                    if (arrayList.size() > i2 && arrayList.get(i2) == null) {
                        arrayList.set(i2, new TreeMap());
                    } else if (arrayList.size() <= i2) {
                        for (int i3 = 0; i3 <= i2 - arrayList.size(); i3++) {
                            arrayList.add(new TreeMap());
                        }
                    } else {
                        ((TreeMap) arrayList.get(i2)).put(oid3, integer32);
                    }
                }
            }
        }
        if (treeMap.size() == 0) {
            if (logger.isInfoEnabled()) {
                logger.info("Filter " + octetString + " has no matches for notification ID " + oid);
            }
            return false;
        }
        if (((Integer32) treeMap.get(treeMap.lastKey())).getValue() == 2) {
            if (logger.isInfoEnabled()) {
                logger.info("Notification ID " + oid + " is excluded from filter " + octetString);
            }
            return false;
        }
        for (int i4 = 0; i4 < arrayList.size(); i4++) {
            TreeMap treeMap2 = (TreeMap) arrayList.get(i4);
            if (treeMap2 != null && treeMap2.size() > 0 && ((Integer32) ((TreeMap) arrayList.get(i4)).get(treeMap2.lastKey())).getValue() == 2) {
                if (logger.isInfoEnabled()) {
                    logger.info("Variable binding " + variableBindingArr[i4] + " is not in filter " + octetString);
                }
                return false;
            }
        }
        return true;
    }
}
