⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 snmptargetmib.java

📁 你个snmp的源码
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
    snmpTargetParamsEntry.addRow(row);
    return true;
  }

  public MOTableRow removeTargetParams(OctetString name) {
    OID index = name.toSubIndex(true);
    return snmpTargetParamsEntry.removeRow(index);
  }

  private void createSnmpTargetParamsEntry() {
    MOColumn[] snmpTargetParamsEntryColumns = new MOColumn[6];
    snmpTargetParamsEntryColumns[idxSnmpTargetParamsMPModel] =
        new MOMutableColumn(colSnmpTargetParamsMPModel,
                            SMIConstants.SYNTAX_INTEGER,
                            MOAccessImpl.ACCESS_READ_CREATE,
                            null,
                            false);
    ((MOMutableColumn) snmpTargetParamsEntryColumns[idxSnmpTargetParamsMPModel]).
        addMOValueValidationListener(new SnmpTargetParamsMPModelValidator());
    snmpTargetParamsEntryColumns[idxSnmpTargetParamsSecurityModel] =
        new MOMutableColumn(colSnmpTargetParamsSecurityModel,
                            SMIConstants.SYNTAX_INTEGER,
                            MOAccessImpl.ACCESS_READ_CREATE,
                            null,
                            false);
    ((MOMutableColumn) snmpTargetParamsEntryColumns[
     idxSnmpTargetParamsSecurityModel]).
        addMOValueValidationListener(new SnmpTargetParamsSecurityModelValidator());
    snmpTargetParamsEntryColumns[idxSnmpTargetParamsSecurityName] =
        new SnmpAdminString(colSnmpTargetParamsSecurityName,
                            MOAccessImpl.ACCESS_READ_CREATE,
                            null,
                            false);
    snmpTargetParamsEntryColumns[idxSnmpTargetParamsSecurityLevel] =
        new Enumerated(colSnmpTargetParamsSecurityLevel,
                        MOAccessImpl.ACCESS_READ_CREATE,
                        null,
                        false,
                        new int[] {
                        SnmpTargetParamsSecurityLevelEnum.noAuthNoPriv,
                        SnmpTargetParamsSecurityLevelEnum.authPriv,
                        SnmpTargetParamsSecurityLevelEnum.authNoPriv});
    snmpTargetParamsEntryColumns[idxSnmpTargetParamsStorageType] =
        new StorageType(colSnmpTargetParamsStorageType,
                        MOAccessImpl.ACCESS_READ_CREATE,
                        new Integer32(3),
                        true);
    snmpTargetParamsEntryColumns[idxSnmpTargetParamsRowStatus] =
        new RowStatus(colSnmpTargetParamsRowStatus,
                      MOAccessImpl.ACCESS_READ_CREATE);
    ((RowStatus)snmpTargetParamsEntryColumns[idxSnmpTargetParamsRowStatus]).
        addRowStatusListener(new SnmpTargetParamsEntryRowStatusListener());

    snmpTargetParamsEntry =
        new DefaultMOTable(oidSnmpTargetParamsEntry,
                           snmpTargetParamsEntryIndex,
                           snmpTargetParamsEntryColumns);
    snmpTargetParamsEntryModel = new DefaultMOMutableTableModel();
    snmpTargetParamsEntryModel.setRowFactory(new DefaultMOMutableRow2PCFactory());
    snmpTargetParamsEntry.setModel(snmpTargetParamsEntryModel);
  }

  private void createSnmpTargetAddrEntry() {
    MOColumn[] snmpTargetAddrEntryColumns = new MOColumn[8];
    snmpTargetAddrEntryColumns[idxSnmpTargetAddrTDomain] =
        new MOMutableColumn(colSnmpTargetAddrTDomain,
                            SMIConstants.SYNTAX_OBJECT_IDENTIFIER,
                            MOAccessImpl.ACCESS_READ_CREATE,
                            null,
                            false);
    ((MOMutableColumn) snmpTargetAddrEntryColumns[idxSnmpTargetAddrTDomain]).
        addMOValueValidationListener(new SnmpTargetAddrTDomainValidator());
    snmpTargetAddrEntryColumns[idxSnmpTargetAddrTAddress] =
        new MOMutableColumn(colSnmpTargetAddrTAddress,
                            SMIConstants.SYNTAX_OCTET_STRING,
                            MOAccessImpl.ACCESS_READ_CREATE,
                            null,
                            false);
    ((MOMutableColumn) snmpTargetAddrEntryColumns[idxSnmpTargetAddrTAddress]).
        addMOValueValidationListener(new SnmpTargetAddrTAddressValidator());
    snmpTargetAddrEntryColumns[idxSnmpTargetAddrTimeout] =
        new MOMutableColumn(colSnmpTargetAddrTimeout,
                            SMIConstants.SYNTAX_INTEGER,
                            MOAccessImpl.ACCESS_READ_CREATE,
                            new Integer32(1500),
                            true);
    ((MOMutableColumn) snmpTargetAddrEntryColumns[idxSnmpTargetAddrTimeout]).
        addMOValueValidationListener(new SnmpTargetAddrTimeoutValidator());
    snmpTargetAddrEntryColumns[idxSnmpTargetAddrRetryCount] =
        new MOMutableColumn(colSnmpTargetAddrRetryCount,
                            SMIConstants.SYNTAX_INTEGER32,
                            MOAccessImpl.ACCESS_READ_CREATE,
                            new Integer32(3),
                            true);
    ((MOMutableColumn) snmpTargetAddrEntryColumns[idxSnmpTargetAddrRetryCount]).
        addMOValueValidationListener(new SnmpTargetAddrRetryCountValidator());
    snmpTargetAddrEntryColumns[idxSnmpTargetAddrTagList] =
        new SnmpTagList(colSnmpTargetAddrTagList,
                        MOAccessImpl.ACCESS_READ_CREATE,
                        new OctetString(new byte[] {}),
                        true);
    snmpTargetAddrEntryColumns[idxSnmpTargetAddrParams] =
        new MOMutableColumn(colSnmpTargetAddrParams,
                            SMIConstants.SYNTAX_OCTET_STRING,
                            MOAccessImpl.ACCESS_READ_CREATE,
                            new OctetString(),
                            true);
    ((MOMutableColumn) snmpTargetAddrEntryColumns[idxSnmpTargetAddrParams]).
        addMOValueValidationListener(new SnmpTargetAddrParamsValidator());
    snmpTargetAddrEntryColumns[idxSnmpTargetAddrStorageType] =
        new StorageType(colSnmpTargetAddrStorageType,
                        MOAccessImpl.ACCESS_READ_CREATE,
                        new Integer32(3),
                        true);
    snmpTargetAddrEntryColumns[idxSnmpTargetAddrRowStatus] =
        new RowStatus(colSnmpTargetAddrRowStatus);
    snmpTargetAddrEntry =
        new DefaultMOTable(oidSnmpTargetAddrEntry,
                           snmpTargetAddrEntryIndex,
                           snmpTargetAddrEntryColumns);
    snmpTargetAddrEntryModel = new DefaultMOMutableTableModel();
    snmpTargetAddrEntryModel.setRowFactory(new SnmpTargetAddrEntryFactory());
    snmpTargetAddrEntry.setModel(snmpTargetAddrEntryModel);
  }

  public void registerMOs(MOServer server, OctetString context) throws
      DuplicateRegistrationException {
    // Scalar Objects
    server.register(this.snmpTargetSpinLock, context);
    server.register(this.snmpUnknownContexts, context);
    server.register(this.snmpUnavailableContexts, context);
    server.register(this.snmpTargetParamsEntry, context);
    server.register(this.snmpTargetAddrEntry, context);
  }

  public void unregisterMOs(MOServer server, OctetString context) {
    // Scalar Objects
    server.unregister(this.snmpTargetSpinLock, context);
    server.unregister(this.snmpUnknownContexts, context);
    server.unregister(this.snmpUnavailableContexts, context);
    server.unregister(this.snmpTargetParamsEntry, context);
    server.unregister(this.snmpTargetAddrEntry, context);
  }

  class SnmpTargetAddrEntryFactory implements MOTableRowFactory {

    public MOTableRow createRow(OID index, Variable[] values) throws
        UnsupportedOperationException {
      SnmpTargetAddrEntryRow row = new SnmpTargetAddrEntryRow(index, values);
      return row;
    }

    public void freeRow(MOTableRow row) {
    }

  }


  class SnmpTargetParamsEntryRowStatusListener implements RowStatusListener {

    public void rowStatusChanged(RowStatusEvent event) {
      if (event.getNewStatus() == RowStatus.destroy) {
        OID index = event.getRow().getIndex();
        OctetString paramsIndex =
            (OctetString) snmpTargetParamsEntryIndex.getIndexValues(index)[0];
        synchronized (snmpTargetAddrEntryModel) {
          for (Iterator it = snmpTargetAddrEntryModel.iterator(); it.hasNext(); ) {
            MOTableRow r = (MOTableRow) it.next();
            Integer32 rowStatus =
                (Integer32) r.getValue(idxSnmpTargetAddrRowStatus);
            if ((rowStatus == null) ||
                (rowStatus.getValue() != RowStatus.active)) {
              continue;
            }
            if (paramsIndex.equals(r.getValue(idxSnmpTargetAddrParams))) {
              event.setDenyReason(SnmpConstants.SNMP_ERROR_INCONSISTENT_VALUE);
              return;
            }
          }
        }
      }
    }

  }

  public class SnmpTargetAddrEntryRow extends DefaultMOMutableRow2PC {
    public SnmpTargetAddrEntryRow(OID index, Variable[] values) {
      super(index, values);
      updateUserObject(this);
    }

    private void updateUserObject(MOTableRow changeSet) {
      Variable tagList = changeSet.getValue(idxSnmpTargetAddrTagList);
      if (tagList != null) {
        Set obsolete = (Set) getUserObject();
        Set tags = SnmpTagList.getTags((OctetString)tagList);
        if (obsolete != null) {
          obsolete.removeAll(tags);
        }
        setUserObject(tags);
        updateIndex(obsolete, tags);
      }
    }

    public void commitRow(SubRequest subRequest, MOTableRow changeSet) {
      super.commitRow(subRequest, changeSet);
      updateUserObject(changeSet);
    }

    private void updateIndex(Set remove, Set tags) {
      if (remove != null) {
        for (Iterator it = remove.iterator(); it.hasNext(); ) {
          Object next = it.next();
          Collection list = (Collection) snmpTargetAddrTagIndex.get(next);
          if (list != null) {
            synchronized (list) {
              if (!list.remove(this)) {
                logger.error("Inconsistent tag value '" + next +
                             "' for rows: " + list);
              }
            }
          }
          else {
            logger.error("Tag value '" + next + "' not found in tag index");
          }
        }
      }
      for (Iterator it = tags.iterator(); it.hasNext(); ) {
        Object next = it.next();
        Set list = (Set) snmpTargetAddrTagIndex.get(next);
        if (list == null) {
          list = new HashSet();
        }
        synchronized (list) {
          list.add(this);
        }
        snmpTargetAddrTagIndex.put(next, list);
      }
    }



    public void prepareRow(SubRequest subRequest, MOTableRow changeSet) {
      OID tdomain =
          (OID) getResultingValue(idxSnmpTargetAddrTDomain, changeSet);
      OctetString taddress =
          (OctetString) getResultingValue(idxSnmpTargetAddrTAddress,
                                          changeSet);
      if (tdomain != null) {
        TDomainAddressFactory factory =
            (TDomainAddressFactory) supportedAddressClasses.get(tdomain);
        if ((factory == null) || (!factory.isValidAddress(tdomain, taddress))) {
          subRequest.getStatus().
              setErrorStatus(SnmpConstants.SNMP_ERROR_INCONSISTENT_VALUE);
        }
      }
      else if (taddress != null) {
        subRequest.getStatus().
            setErrorStatus(SnmpConstants.SNMP_ERROR_INCONSISTENT_VALUE);
      }
    }

    public Address getAddress() {
      OID tdomain = (OID) getValue(idxSnmpTargetAddrTDomain);
      TDomainAddressFactory factory = (TDomainAddressFactory)
          supportedAddressClasses.get(tdomain);
      if (factory != null) {
        OctetString addr =  (OctetString) getValue(idxSnmpTargetAddrTAddress);
        return factory.createAddress(tdomain, addr);
      }
      return null;
    }

    public OctetString getTAddress(Address address) {
      OID tdomain = (OID) getValue(idxSnmpTargetAddrTDomain);
      TDomainAddressFactory factory = (TDomainAddressFactory)
          supportedAddressClasses.get(tdomain);
      OID domain = factory.getTransportDomain(address);
      if (!tdomain.equals(domain)) {
        return null;
      }
      return factory.getAddress(address);
    }

    public Target getTarget(OctetString contextEngineID,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -