当前位置: 首页>>代码示例>>Java>>正文


Java SnmpStatusException.snmpRspGenErr方法代码示例

本文整理汇总了Java中com.sun.jmx.snmp.SnmpStatusException.snmpRspGenErr方法的典型用法代码示例。如果您正苦于以下问题:Java SnmpStatusException.snmpRspGenErr方法的具体用法?Java SnmpStatusException.snmpRspGenErr怎么用?Java SnmpStatusException.snmpRspGenErr使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.sun.jmx.snmp.SnmpStatusException的用法示例。


在下文中一共展示了SnmpStatusException.snmpRspGenErr方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: findHandlingNode

import com.sun.jmx.snmp.SnmpStatusException; //导入方法依赖的package包/类
@Override
void findHandlingNode(SnmpVarBind varbind,
                      long[] oid, int depth,
                      SnmpRequestTree handlers)
    throws SnmpStatusException {


    final int length = oid.length;
    SnmpMibNode node = null;

    if (handlers == null)
        throw new SnmpStatusException(SnmpStatusException.snmpRspGenErr);

    if (depth > length) {
        // Nothing is left... the oid is not valid
        throw new SnmpStatusException(SnmpStatusException.noSuchObject);
    } else if (depth == length) {
        // The oid is not complete...
        throw new SnmpStatusException(SnmpStatusException.noSuchInstance);
    } else {
        // Some children variable or subobject is being querried
        // getChild() will raise an exception if no child is found.
        //
        final SnmpMibNode child= getChild(oid[depth]);

        // XXXX zzzz : what about null children?
        //             (variables for nested groups)
        // if child==null, then we're dealing with a variable or
        // a table: we register this node.
        // This behaviour should be overriden in subclasses,
        // in particular in group meta classes: the group
        // meta classes that hold tables should take care
        // of forwarding this call to all the tables involved.
        //
        if (child == null)
            handlers.add(this,depth,varbind);
        else
            child.findHandlingNode(varbind,oid,depth+1,handlers);
    }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:41,代码来源:SnmpMibOid.java

示例2: findHandlingNode

import com.sun.jmx.snmp.SnmpStatusException; //导入方法依赖的package包/类
@Override
void findHandlingNode(SnmpVarBind varbind,
                      long[] oid, int depth,
                      SnmpRequestTree handlers)
    throws SnmpStatusException {

    int length = oid.length;

    if (handlers == null)
        throw new SnmpStatusException(SnmpStatusException.snmpRspGenErr);

    final Object data = handlers.getUserData();

    if (depth >= length) {
        // Nothing is left... the oid is not valid
        throw new SnmpStatusException(SnmpStatusException.noAccess);
    }

    long arc = oid[depth];

    if (isNestedArc(arc)) {
        // This arc leads to a subgroup: delegates the search to the
        // method defined in SnmpMibOid
        super.findHandlingNode(varbind,oid,depth,handlers);
    } else if (isTable(arc)) {
        // This arc leads to a table: forward the search to the table.

        // Gets the table
        SnmpMibTable table = getTable(arc);

        // Forward the search to the table
        table.findHandlingNode(varbind,oid,depth+1,handlers);

    } else {
        // If it's not a variable, throws an exception
        validateVarId(arc, data);

        // The trailing .0 is missing in the OID
        if (depth+2 > length) {
            throw new SnmpStatusException(SnmpStatusException.noSuchInstance);
        }

        // There are too many arcs left in the OID (there should remain
        // a single trailing .0)
        if (depth+2 < length) {
            throw new SnmpStatusException(SnmpStatusException.noSuchInstance);
        }

        // The last trailing arc is not .0
        if (oid[depth+1] != 0L) {
            throw new SnmpStatusException(SnmpStatusException.noSuchInstance);
        }

        // It's one of our variable, register this node.
        handlers.add(this,depth,varbind);
    }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:58,代码来源:SnmpMibGroup.java

示例3: mapGetException

import com.sun.jmx.snmp.SnmpStatusException; //导入方法依赖的package包/类
public static int mapGetException(int errorStatus, int version)
    throws SnmpStatusException {

    final int errorCode = errorStatus;
    if (version == SnmpDefinitions.snmpVersionOne)
        return errorCode;

    int mappedErrorCode = errorCode;

    // Now take care of V2 errorCodes that can be stored
    // in the varbind itself:
    if (errorCode ==
        SnmpStatusException.noSuchObject)
        // noSuchObject => noSuchObject
        mappedErrorCode = errorCode;

    else if (errorCode ==
             SnmpStatusException.noSuchInstance)
        // noSuchInstance => noSuchInstance
        mappedErrorCode = errorCode;

    // Now we're going to try to transform every other
    // global code in either noSuchInstance or noSuchObject,
    // so that the get can return a partial result.
    //
    // Only noSuchInstance or noSuchObject can be stored
    // in the varbind itself.
    //

    // According to RFC 1905: noAccess is emitted when the
    // the access is denied because it is not in the MIB view...
    //
    else if (errorCode ==
             SnmpStatusException.noAccess)
        // noAccess => noSuchInstance
        mappedErrorCode = SnmpStatusException.noSuchInstance;

    // According to RFC 1905: (my interpretation because it is not
    // really clear) The specified variable name exists - but the
    // variable does not exists and cannot be created under the
    // present circumstances (probably because the request specifies
    // another variable/value which is incompatible, or because the
    // value of some other variable in the MIB prevents the creation)
    //
    // Note that this error should never be raised in a GET context
    // but who knows?
    //
    else if (errorCode == SnmpStatusException.snmpRspInconsistentName)
        // inconsistentName => noSuchInstance
        mappedErrorCode = SnmpStatusException.noSuchInstance;

    // All the errors comprised between snmpRspWrongType and
    // snmpRspInconsistentValue concern values: so we're going
    // to assume the OID was correct, and reply with noSuchInstance.
    //
    // Note that this error should never be raised in a GET context
    // but who knows?
    //
    else if ((errorCode >= SnmpStatusException.snmpRspWrongType) &&
             (errorCode <= SnmpStatusException.snmpRspInconsistentValue))
        mappedErrorCode = SnmpStatusException.noSuchInstance;

    // We're going to assume the OID was correct, and reply
    // with noSuchInstance.
    //
    else if (errorCode == SnmpStatusException.readOnly)
        mappedErrorCode = SnmpStatusException.noSuchInstance;

    // For all other errors but genErr, we're going to reply with
    // noSuchObject
    //
    else if (errorCode != SnmpStatusException.snmpRspAuthorizationError &&
             errorCode != SnmpStatusException.snmpRspGenErr)
        mappedErrorCode = SnmpStatusException.noSuchObject;

    // Only genErr will abort the GET and be returned as global
    // error.
    //
    return mappedErrorCode;

}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:82,代码来源:SnmpRequestTree.java

示例4: findHandlingNode

import com.sun.jmx.snmp.SnmpStatusException; //导入方法依赖的package包/类
@Override
final synchronized void findHandlingNode(SnmpVarBind varbind,
                                         long[] oid, int depth,
                                         SnmpRequestTree handlers)
    throws SnmpStatusException {

    final int  length = oid.length;

    if (handlers == null)
        throw new SnmpStatusException(SnmpStatusException.snmpRspGenErr);

    if (depth >= length)
        throw new SnmpStatusException(SnmpStatusException.noAccess);

    if (oid[depth] != nodeId)
        throw new SnmpStatusException(SnmpStatusException.noAccess);

    if (depth+2 >= length)
        throw new SnmpStatusException(SnmpStatusException.noAccess);

    // Checks that the oid is valid
    // validateOid(oid,depth);

    // Gets the part of the OID that identifies the entry
    final SnmpOid entryoid = new SnmpEntryOid(oid, depth+2);

    // Finds the entry: false means that the entry does not exists
    final Object data = handlers.getUserData();
    final boolean hasEntry = contains(entryoid, data);

    // Fails if the entry is not found and the table does not
    // not support creation.
    // We know that the entry does not exists if (isentry == false).
    if (!hasEntry) {
        if (!handlers.isCreationAllowed()) {
            // we're not doing a set
            throw new SnmpStatusException(SnmpStatusException.noSuchInstance);
        } else if (!isCreationEnabled())
            // we're doing a set but creation is disabled.
            throw new
                SnmpStatusException(SnmpStatusException.snmpRspNoAccess);
    }

    final long   var  = oid[depth+1];

    // Validate the entry id
    if (hasEntry) {
        // The entry already exists - validate the id
        validateVarEntryId(entryoid,var,data);
    }

    // Registers this node for the identified entry.
    //
    if (handlers.isSetRequest() && isRowStatus(entryoid,var,data))

        // We only try to identify the RowStatus for SET operations
        //
        handlers.add(this,depth,entryoid,varbind,(!hasEntry),varbind);

    else
        handlers.add(this,depth,entryoid,varbind,(!hasEntry));
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:63,代码来源:SnmpMibTable.java


注:本文中的com.sun.jmx.snmp.SnmpStatusException.snmpRspGenErr方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。