package org.snmp4j.agent.mo.snmp;

import java.io.Serializable;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import org.snmp4j.agent.DuplicateRegistrationException;
import org.snmp4j.agent.MOGroup;
import org.snmp4j.agent.MOServer;
import org.snmp4j.agent.NotificationOriginator;
import org.snmp4j.agent.mo.DefaultMOMutableTableModel;
import org.snmp4j.agent.mo.DefaultMOTable;
import org.snmp4j.agent.mo.DefaultMOTableRow;
import org.snmp4j.agent.mo.MOAccessImpl;
import org.snmp4j.agent.mo.MOColumn;
import org.snmp4j.agent.mo.MOScalar;
import org.snmp4j.agent.mo.MOTableIndex;
import org.snmp4j.agent.mo.MOTableRow;
import org.snmp4j.agent.mo.MOTableRowFactory;
import org.snmp4j.agent.mo.MOTableSubIndex;
import org.snmp4j.event.CounterEvent;
import org.snmp4j.event.CounterListener;
import org.snmp4j.log.LogAdapter;
import org.snmp4j.log.LogFactory;
import org.snmp4j.mp.SnmpConstants;
import org.snmp4j.smi.Counter32;
import org.snmp4j.smi.Integer32;
import org.snmp4j.smi.OID;
import org.snmp4j.smi.OctetString;
import org.snmp4j.smi.TimeTicks;
import org.snmp4j.smi.Variable;
import org.snmp4j.smi.VariableBinding;

/* JADX INFO: loaded from: classes.dex */
public class SNMPv2MIB implements MOGroup, CounterListener, AgentCapabilityList {
    private static final int colSysORDescr = 3;
    private static final int colSysORID = 2;
    private static final int colSysORUpTime = 4;
    private static final int idxSysORDescr = 1;
    private static final int idxSysORID = 0;
    private static final int idxSysORUpTime = 2;
    private static MOTableIndex sysOREntryIndex;
    private static MOTableSubIndex[] sysOREntryIndexes;
    private static Map<OctetString, SysUpTimeImpl> sysUpTimes;
    private MOScalar<OctetString> contact;
    private MOScalar<OctetString> descr;
    private MOScalar<OctetString> location;
    private MOScalar<OctetString> name;
    private NotificationOriginator notificationOriginator;
    private MOScalar<OID> objectID;
    private MOScalar<Integer32> services;
    private MOScalar<Integer32> snmpEnableAuthenTraps;
    private TestAndIncr snmpSetSerialNo;
    private MOScalar[] snmpStats;
    private DefaultMOTable<DefaultMOTableRow, MOColumn, DefaultMOMutableTableModel<DefaultMOTableRow>> sysOREntry;
    private DefaultMOMutableTableModel<DefaultMOTableRow> sysOREntryModel;
    private MOScalar<TimeTicks> sysORLastChange;
    private SysUpTimeImpl upTime;
    private static final LogAdapter LOGGER = LogFactory.getLogger(SNMPv2MIB.class);
    private static final OID snmpStatsPrefix = new OID(new int[]{1, 3, 6, 1, 2, 1, 11});
    private static final OID usmStatsPrefix = new OID(new int[]{1, 3, 6, 1, 6, 3, 15, 1, 1});
    private static final OID oidSnmpInPkts = SnmpConstants.snmpInPkts;
    private static final OID oidSnmpInBadVersions = SnmpConstants.snmpInBadVersions;
    private static final OID oidSnmpInBadCommunityNames = SnmpConstants.snmpInBadCommunityNames;
    private static final OID oidSnmpInBadCommunityUses = SnmpConstants.snmpInBadCommunityUses;
    private static final OID oidSnmpInASNParseErrs = SnmpConstants.snmpInASNParseErrs;
    private static final OID oidSnmpSilentDrops = SnmpConstants.snmpSilentDrops;
    private static final OID oidSnmpProxyDrops = SnmpConstants.snmpProxyDrops;
    private static final OID oidSysORLastChange = new OID(new int[]{1, 3, 6, 1, 2, 1, 1, 8, 0});
    private static final OID oidSnmpEnableAuthenTraps = new OID(new int[]{1, 3, 6, 1, 2, 1, 11, 30, 0});
    private static final OID oidSnmpSetSerialNo = new OID(new int[]{1, 3, 6, 1, 6, 3, 1, 1, 6, 1, 0});
    private static final OID[] snmpStatsOIDs = {oidSnmpInPkts, oidSnmpInBadVersions, oidSnmpInBadCommunityNames, oidSnmpInBadCommunityUses, oidSnmpInASNParseErrs, oidSnmpSilentDrops, oidSnmpProxyDrops};
    private static final OID oidSysOREntry = new OID(new int[]{1, 3, 6, 1, 2, 1, 1, 9, 1});

    public static final class SnmpEnableAuthenTrapsEnum {
        public static final int disabled = 2;
        public static final int enabled = 1;
    }

    public class SysOREntry extends DefaultMOTable<DefaultMOTableRow, MOColumn, DefaultMOMutableTableModel<DefaultMOTableRow>> implements AgentCapabilityList {
        public SysOREntry(OID oid, MOTableIndex mOTableIndex, MOColumn[] mOColumnArr) {
            super(oid, mOTableIndex, mOColumnArr);
        }

        @Override // org.snmp4j.agent.mo.snmp.AgentCapabilityList
        public OID addSysOREntry(OID oid, OctetString octetString) {
            return SNMPv2MIB.this.addSysOREntry(oid, octetString);
        }

        @Override // org.snmp4j.agent.mo.snmp.AgentCapabilityList
        public MOTableRow removeSysOREntry(OID oid) {
            return SNMPv2MIB.this.removeSysOREntry(oid);
        }
    }

    public static class SysUpTimeImpl extends MOScalar<TimeTicks> implements SysUpTime, Serializable {
        private static final long serialVersionUID = 1;
        private long startTime;

        public SysUpTimeImpl() {
            super(new OID(SnmpConstants.sysUpTime), MOAccessImpl.ACCESS_READ_ONLY, new TimeTicks(0L));
            this.startTime = System.nanoTime();
        }

        @Override // org.snmp4j.agent.mo.snmp.SysUpTime
        public TimeTicks get() {
            return getValue();
        }

        @Override // org.snmp4j.agent.mo.MOScalar
        public TimeTicks getValue() {
            return new TimeTicks(((System.nanoTime() - this.startTime) / 10000000) & Counter32.MAX_COUNTER32_VALUE);
        }
    }

    static {
        MOTableSubIndex[] mOTableSubIndexArr = {new MOTableSubIndex(2, 1, 1)};
        sysOREntryIndexes = mOTableSubIndexArr;
        sysOREntryIndex = new MOTableIndex(mOTableSubIndexArr, false);
        sysUpTimes = Collections.synchronizedMap(new HashMap());
    }

    public SNMPv2MIB(OctetString octetString, OID oid, Integer32 integer32) {
        this(octetString, oid, integer32, null);
    }

    private void createSnmpStats() {
        this.snmpStats = new MOScalar[snmpStatsOIDs.length];
        for (int i2 = 0; i2 < snmpStatsOIDs.length; i2++) {
            this.snmpStats[i2] = new MOScalar(snmpStatsOIDs[i2], MOAccessImpl.ACCESS_READ_ONLY, new Counter32(0L));
        }
    }

    private void createSysOREntry() {
        this.sysOREntry = new SysOREntry(oidSysOREntry, sysOREntryIndex, new MOColumn[]{new MOColumn(2, 6, MOAccessImpl.ACCESS_READ_ONLY), new DisplayString(3, MOAccessImpl.ACCESS_READ_ONLY, null, true), new MOColumn(4, 67, MOAccessImpl.ACCESS_READ_ONLY)});
        DefaultMOMutableTableModel<DefaultMOTableRow> defaultMOMutableTableModel = new DefaultMOMutableTableModel<>();
        this.sysOREntryModel = defaultMOMutableTableModel;
        defaultMOMutableTableModel.setRowFactory(new MOTableRowFactory<DefaultMOTableRow>() { // from class: org.snmp4j.agent.mo.snmp.SNMPv2MIB.2
            @Override // org.snmp4j.agent.mo.MOTableRowFactory
            public void freeRow(DefaultMOTableRow defaultMOTableRow) {
            }

            @Override // org.snmp4j.agent.mo.MOTableRowFactory
            public DefaultMOTableRow createRow(OID oid, Variable[] variableArr) throws UnsupportedOperationException {
                return new DefaultMOTableRow(oid, variableArr);
            }
        });
        this.sysOREntry.setModel(this.sysOREntryModel);
        this.sysOREntry.setVolatile(true);
    }

    @Override // org.snmp4j.agent.mo.snmp.AgentCapabilityList
    public OID addSysOREntry(OID oid, OctetString octetString) {
        OID oid2 = new OID(new int[]{this.sysOREntryModel.getRowCount() + 1});
        Variable[] variableArr = new Variable[this.sysOREntry.getColumnCount()];
        variableArr[0] = oid;
        variableArr[1] = octetString;
        variableArr[2] = this.upTime.get();
        this.sysOREntry.addRow(new DefaultMOTableRow(oid2, variableArr));
        updateSysORLastChange();
        return oid2;
    }

    public OctetString getContact() {
        return (OctetString) this.contact.getValue();
    }

    public OctetString getDescr() {
        return (OctetString) this.descr.getValue();
    }

    public OctetString getLocation() {
        return (OctetString) this.location.getValue();
    }

    public OctetString getName() {
        return (OctetString) this.name.getValue();
    }

    public NotificationOriginator getNotificationOriginator() {
        return this.notificationOriginator;
    }

    public OID getObjectID() {
        return (OID) this.objectID.getValue();
    }

    public Integer32 getServices() {
        return (Integer32) this.services.getValue();
    }

    public SysUpTime getSysUpTime() {
        return this.upTime;
    }

    public TimeTicks getUpTime() {
        return this.upTime.getValue();
    }

    @Override // org.snmp4j.event.CounterListener
    public void incrementCounter(CounterEvent counterEvent) {
        if (counterEvent.getOid().startsWith(snmpStatsPrefix) && counterEvent.getOid().size() > snmpStatsPrefix.size()) {
            int i2 = counterEvent.getOid().get(snmpStatsPrefix.size());
            int i3 = 0;
            while (true) {
                OID[] oidArr = snmpStatsOIDs;
                if (i3 >= oidArr.length) {
                    break;
                }
                if (i2 == oidArr[i3].get(snmpStatsPrefix.size())) {
                    Counter32 counter32 = (Counter32) this.snmpStats[i3].getValue();
                    counter32.increment();
                    counterEvent.setCurrentValue((Counter32) counter32.clone());
                }
                i3++;
            }
        }
        OID oid = counterEvent.getOid();
        if ((oid.equals(SnmpConstants.snmpInBadCommunityNames) || !(!oid.startsWith(usmStatsPrefix) || SnmpConstants.usmStatsNotInTimeWindows.equals(oid) || SnmpConstants.usmStatsUnknownEngineIDs.equals(oid))) && ((Integer32) this.snmpEnableAuthenTraps.getValue()).getValue() == 1) {
            NotificationOriginator notificationOriginator = this.notificationOriginator;
            if (notificationOriginator == null) {
                LOGGER.debug("Authentication failure trap not sent because NotificationOriginator not set in SNMPv2MIB");
            } else {
                notificationOriginator.notify(new OctetString(), SnmpConstants.authenticationFailure, new VariableBinding[0]);
            }
        }
    }

    @Override // org.snmp4j.agent.MOGroup
    public void registerMOs(MOServer mOServer, OctetString octetString) throws DuplicateRegistrationException {
        mOServer.register(this.descr, octetString);
        mOServer.register(this.upTime, octetString);
        sysUpTimes.put(octetString, this.upTime);
        mOServer.register(this.objectID, octetString);
        mOServer.register(this.contact, octetString);
        mOServer.register(this.name, octetString);
        mOServer.register(this.location, octetString);
        mOServer.register(this.services, octetString);
        mOServer.register(this.snmpEnableAuthenTraps, octetString);
        mOServer.register(this.snmpSetSerialNo, octetString);
        mOServer.register(this.sysORLastChange, octetString);
        for (MOScalar mOScalar : this.snmpStats) {
            mOServer.register(mOScalar, octetString);
        }
        mOServer.register(this.sysOREntry, octetString);
    }

    @Override // org.snmp4j.agent.mo.snmp.AgentCapabilityList
    public MOTableRow removeSysOREntry(OID oid) {
        updateSysORLastChange();
        return this.sysOREntry.removeRow(oid);
    }

    public void setContact(OctetString octetString) {
        this.contact.setValue(octetString);
    }

    public void setLocation(OctetString octetString) {
        this.location.setValue(octetString);
    }

    public void setName(OctetString octetString) {
        this.name.setValue(octetString);
    }

    public void setNotificationOriginator(NotificationOriginator notificationOriginator) {
        this.notificationOriginator = notificationOriginator;
    }

    @Override // org.snmp4j.agent.MOGroup
    public void unregisterMOs(MOServer mOServer, OctetString octetString) {
        mOServer.unregister(this.descr, octetString);
        mOServer.unregister(this.upTime, octetString);
        sysUpTimes.remove(octetString);
        mOServer.unregister(this.objectID, octetString);
        mOServer.unregister(this.contact, octetString);
        mOServer.unregister(this.name, octetString);
        mOServer.unregister(this.location, octetString);
        mOServer.unregister(this.services, octetString);
        mOServer.unregister(this.snmpEnableAuthenTraps, octetString);
        mOServer.unregister(this.snmpSetSerialNo, octetString);
        mOServer.unregister(this.sysORLastChange, octetString);
        for (MOScalar mOScalar : this.snmpStats) {
            mOServer.unregister(mOScalar, octetString);
        }
        mOServer.unregister(this.sysOREntry, octetString);
    }

    protected void updateSysORLastChange() {
        this.sysORLastChange.setValue(getUpTime());
    }

    protected SNMPv2MIB(OctetString octetString, OID oid, Integer32 integer32, final SysUpTime sysUpTime) {
        MOScalar<OctetString> mOScalar = new MOScalar<>(new OID(SnmpConstants.sysDescr), MOAccessImpl.ACCESS_READ_ONLY, octetString);
        this.descr = mOScalar;
        mOScalar.setVolatile(true);
        if (sysUpTime == null) {
            this.upTime = new SysUpTimeImpl();
        } else {
            this.upTime = new SysUpTimeImpl() { // from class: org.snmp4j.agent.mo.snmp.SNMPv2MIB.1
                @Override // org.snmp4j.agent.mo.snmp.SNMPv2MIB.SysUpTimeImpl, org.snmp4j.agent.mo.MOScalar
                public TimeTicks getValue() {
                    return sysUpTime.get();
                }
            };
        }
        this.upTime.setVolatile(true);
        MOScalar<OID> mOScalar2 = new MOScalar<>(new OID(SnmpConstants.sysObjectID), MOAccessImpl.ACCESS_READ_ONLY, oid);
        this.objectID = mOScalar2;
        mOScalar2.setVolatile(true);
        this.contact = new DisplayStringScalar(new OID(SnmpConstants.sysContact), MOAccessImpl.ACCESS_READ_WRITE, new OctetString());
        this.name = new DisplayStringScalar(new OID(SnmpConstants.sysName), MOAccessImpl.ACCESS_READ_WRITE, new OctetString());
        this.location = new DisplayStringScalar(new OID(SnmpConstants.sysLocation), MOAccessImpl.ACCESS_READ_WRITE, new OctetString());
        MOScalar<Integer32> mOScalar3 = new MOScalar<>(new OID(SnmpConstants.sysServices), MOAccessImpl.ACCESS_READ_ONLY, integer32);
        this.services = mOScalar3;
        mOScalar3.setVolatile(true);
        this.snmpEnableAuthenTraps = new EnumeratedScalar(oidSnmpEnableAuthenTraps, MOAccessImpl.ACCESS_READ_WRITE, new Integer32(1), new int[]{1, 2});
        TestAndIncr testAndIncr = new TestAndIncr(oidSnmpSetSerialNo);
        this.snmpSetSerialNo = testAndIncr;
        testAndIncr.setVolatile(true);
        TimeStampScalar timeStampScalar = new TimeStampScalar(oidSysORLastChange, MOAccessImpl.ACCESS_READ_ONLY, this.upTime);
        this.sysORLastChange = timeStampScalar;
        timeStampScalar.setVolatile(true);
        createSysOREntry();
        createSnmpStats();
    }

    public static SysUpTime getSysUpTime(OctetString octetString) {
        return sysUpTimes.get(octetString);
    }
}
