Java 类com.sun.jmx.snmp.SnmpPduBulk 实例源码

项目:OpenJSharp    文件:SnmpRequestHandler.java   
/**
 * The method takes the incoming get bulk requests and split it into
 * subrequests.
 */
private void splitBulkRequest(SnmpPduBulk req,
                              int nonRepeaters,
                              int maxRepetitions,
                              int R) {
    // Send the getBulk to all agents
    //
    for(Enumeration<SnmpMibAgent> e= mibs.elements(); e.hasMoreElements(); ) {
        final SnmpMibAgent agent = e.nextElement();

        if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) {
            SNMP_ADAPTOR_LOGGER.logp(Level.FINER, dbgTag,
               "splitBulkRequest", "Create a sub with : " + agent + " " + nonRepeaters
               + " " + maxRepetitions + " " + R);
        }

        subs.put(agent,
                 new SnmpSubBulkRequestHandler(adaptor,
                                               agent,
                                               req,
                                               nonRepeaters,
                                               maxRepetitions,
                                               R));
    }
}
项目:jdk8u-jdk    文件:SnmpRequestHandler.java   
/**
 * The method takes the incoming get bulk requests and split it into
 * subrequests.
 */
private void splitBulkRequest(SnmpPduBulk req,
                              int nonRepeaters,
                              int maxRepetitions,
                              int R) {
    // Send the getBulk to all agents
    //
    for(Enumeration<SnmpMibAgent> e= mibs.elements(); e.hasMoreElements(); ) {
        final SnmpMibAgent agent = e.nextElement();

        if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) {
            SNMP_ADAPTOR_LOGGER.logp(Level.FINER, dbgTag,
               "splitBulkRequest", "Create a sub with : " + agent + " " + nonRepeaters
               + " " + maxRepetitions + " " + R);
        }

        subs.put(agent,
                 new SnmpSubBulkRequestHandler(adaptor,
                                               agent,
                                               req,
                                               nonRepeaters,
                                               maxRepetitions,
                                               R));
    }
}
项目:jdk8u_jdk    文件:SnmpRequestHandler.java   
/**
 * The method takes the incoming get bulk requests and split it into
 * subrequests.
 */
private void splitBulkRequest(SnmpPduBulk req,
                              int nonRepeaters,
                              int maxRepetitions,
                              int R) {
    // Send the getBulk to all agents
    //
    for(Enumeration<SnmpMibAgent> e= mibs.elements(); e.hasMoreElements(); ) {
        final SnmpMibAgent agent = e.nextElement();

        if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) {
            SNMP_ADAPTOR_LOGGER.logp(Level.FINER, dbgTag,
               "splitBulkRequest", "Create a sub with : " + agent + " " + nonRepeaters
               + " " + maxRepetitions + " " + R);
        }

        subs.put(agent,
                 new SnmpSubBulkRequestHandler(adaptor,
                                               agent,
                                               req,
                                               nonRepeaters,
                                               maxRepetitions,
                                               R));
    }
}
项目:lookaside_java-1.8.0-openjdk    文件:SnmpRequestHandler.java   
/**
 * The method takes the incoming get bulk requests and split it into
 * subrequests.
 */
private void splitBulkRequest(SnmpPduBulk req,
                              int nonRepeaters,
                              int maxRepetitions,
                              int R) {
    // Send the getBulk to all agents
    //
    for(Enumeration<SnmpMibAgent> e= mibs.elements(); e.hasMoreElements(); ) {
        final SnmpMibAgent agent = e.nextElement();

        if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) {
            SNMP_ADAPTOR_LOGGER.logp(Level.FINER, dbgTag,
               "splitBulkRequest", "Create a sub with : " + agent + " " + nonRepeaters
               + " " + maxRepetitions + " " + R);
        }

        subs.put(agent,
                 new SnmpSubBulkRequestHandler(adaptor,
                                               agent,
                                               req,
                                               nonRepeaters,
                                               maxRepetitions,
                                               R));
    }
}
项目:infobip-open-jdk-8    文件:SnmpRequestHandler.java   
/**
 * The method takes the incoming get bulk requests and split it into
 * subrequests.
 */
private void splitBulkRequest(SnmpPduBulk req,
                              int nonRepeaters,
                              int maxRepetitions,
                              int R) {
    // Send the getBulk to all agents
    //
    for(Enumeration<SnmpMibAgent> e= mibs.elements(); e.hasMoreElements(); ) {
        final SnmpMibAgent agent = e.nextElement();

        if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) {
            SNMP_ADAPTOR_LOGGER.logp(Level.FINER, dbgTag,
               "splitBulkRequest", "Create a sub with : " + agent + " " + nonRepeaters
               + " " + maxRepetitions + " " + R);
        }

        subs.put(agent,
                 new SnmpSubBulkRequestHandler(adaptor,
                                               agent,
                                               req,
                                               nonRepeaters,
                                               maxRepetitions,
                                               R));
    }
}
项目:jdk8u-dev-jdk    文件:SnmpRequestHandler.java   
/**
 * The method takes the incoming get bulk requests and split it into
 * subrequests.
 */
private void splitBulkRequest(SnmpPduBulk req,
                              int nonRepeaters,
                              int maxRepetitions,
                              int R) {
    // Send the getBulk to all agents
    //
    for(Enumeration<SnmpMibAgent> e= mibs.elements(); e.hasMoreElements(); ) {
        final SnmpMibAgent agent = e.nextElement();

        if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) {
            SNMP_ADAPTOR_LOGGER.logp(Level.FINER, dbgTag,
               "splitBulkRequest", "Create a sub with : " + agent + " " + nonRepeaters
               + " " + maxRepetitions + " " + R);
        }

        subs.put(agent,
                 new SnmpSubBulkRequestHandler(adaptor,
                                               agent,
                                               req,
                                               nonRepeaters,
                                               maxRepetitions,
                                               R));
    }
}
项目:jdk7-jdk    文件:SnmpRequestHandler.java   
/**
 * The method takes the incoming get bulk requests and split it into
 * subrequests.
 */
private void splitBulkRequest(SnmpPduBulk req,
                              int nonRepeaters,
                              int maxRepetitions,
                              int R) {
    // Send the getBulk to all agents
    //
    for(Enumeration e= mibs.elements(); e.hasMoreElements(); ) {
        SnmpMibAgent agent = (SnmpMibAgent) e.nextElement();

        if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) {
            SNMP_ADAPTOR_LOGGER.logp(Level.FINER, dbgTag,
               "splitBulkRequest", "Create a sub with : " + agent + " " + nonRepeaters
               + " " + maxRepetitions + " " + R);
        }

        subs.put(agent,
                 new SnmpSubBulkRequestHandler(adaptor,
                                               agent,
                                               req,
                                               nonRepeaters,
                                               maxRepetitions,
                                               R));
    }
    return;
}
项目:openjdk-source-code-learn    文件:SnmpRequestHandler.java   
/**
 * The method takes the incoming get bulk requests and split it into
 * subrequests.
 */
private void splitBulkRequest(SnmpPduBulk req,
                              int nonRepeaters,
                              int maxRepetitions,
                              int R) {
    // Send the getBulk to all agents
    //
    for(Enumeration e= mibs.elements(); e.hasMoreElements(); ) {
        SnmpMibAgent agent = (SnmpMibAgent) e.nextElement();

        if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) {
            SNMP_ADAPTOR_LOGGER.logp(Level.FINER, dbgTag,
               "splitBulkRequest", "Create a sub with : " + agent + " " + nonRepeaters
               + " " + maxRepetitions + " " + R);
        }

        subs.put(agent,
                 new SnmpSubBulkRequestHandler(adaptor,
                                               agent,
                                               req,
                                               nonRepeaters,
                                               maxRepetitions,
                                               R));
    }
    return;
}
项目:OLD-OpenJDK8    文件:SnmpRequestHandler.java   
/**
 * The method takes the incoming get bulk requests and split it into
 * subrequests.
 */
private void splitBulkRequest(SnmpPduBulk req,
                              int nonRepeaters,
                              int maxRepetitions,
                              int R) {
    // Send the getBulk to all agents
    //
    for(Enumeration<SnmpMibAgent> e= mibs.elements(); e.hasMoreElements(); ) {
        final SnmpMibAgent agent = e.nextElement();

        if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) {
            SNMP_ADAPTOR_LOGGER.logp(Level.FINER, dbgTag,
               "splitBulkRequest", "Create a sub with : " + agent + " " + nonRepeaters
               + " " + maxRepetitions + " " + R);
        }

        subs.put(agent,
                 new SnmpSubBulkRequestHandler(adaptor,
                                               agent,
                                               req,
                                               nonRepeaters,
                                               maxRepetitions,
                                               R));
    }
}
项目:openjdk-jdk7u-jdk    文件:SnmpRequestHandler.java   
/**
 * The method takes the incoming get bulk requests and split it into
 * subrequests.
 */
private void splitBulkRequest(SnmpPduBulk req,
                              int nonRepeaters,
                              int maxRepetitions,
                              int R) {
    // Send the getBulk to all agents
    //
    for(Enumeration e= mibs.elements(); e.hasMoreElements(); ) {
        SnmpMibAgent agent = (SnmpMibAgent) e.nextElement();

        if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) {
            SNMP_ADAPTOR_LOGGER.logp(Level.FINER, dbgTag,
               "splitBulkRequest", "Create a sub with : " + agent + " " + nonRepeaters
               + " " + maxRepetitions + " " + R);
        }

        subs.put(agent,
                 new SnmpSubBulkRequestHandler(adaptor,
                                               agent,
                                               req,
                                               nonRepeaters,
                                               maxRepetitions,
                                               R));
    }
    return;
}
项目:OpenJSharp    文件:SnmpRequestHandler.java   
/**
 * Here we make a response pdu from a request pdu.
 * We return null if there is no pdu to reply.
 */
private SnmpPduPacket makeResponsePdu(SnmpPduPacket reqPdu,
                                      Object userData) {

    SnmpAdaptorServer snmpServer = (SnmpAdaptorServer)adaptorServer ;
    SnmpPduPacket respPdu = null ;

    snmpServer.updateRequestCounters(reqPdu.type) ;
    if (reqPdu.varBindList != null)
        snmpServer.updateVarCounters(reqPdu.type,
                                     reqPdu.varBindList.length) ;

    if (checkPduType(reqPdu)) {
        respPdu = checkAcl(reqPdu) ;
        if (respPdu == null) { // reqPdu is accepted by ACLs
            if (mibs.size() < 1) {
                if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) {
                    SNMP_ADAPTOR_LOGGER.logp(Level.FINER, dbgTag,
                       "makeResponsePdu", "Request " + reqPdu.requestId +
                       " received but no MIB registered.");
                }
                return makeNoMibErrorPdu((SnmpPduRequest)reqPdu, userData);
            }
            switch(reqPdu.type) {
            case SnmpPduPacket.pduGetRequestPdu:
            case SnmpPduPacket.pduGetNextRequestPdu:
            case SnmpPduPacket.pduSetRequestPdu:
                respPdu = makeGetSetResponsePdu((SnmpPduRequest)reqPdu,
                                                userData) ;
                break ;

            case SnmpPduPacket.pduGetBulkRequestPdu:
                respPdu = makeGetBulkResponsePdu((SnmpPduBulk)reqPdu,
                                                 userData) ;
                break ;
            }
        }
        else { // reqPdu is rejected by ACLs
            // respPdu contains the error response to be sent.
            // We send this response only if authResEnabled is true.
            if (!snmpServer.getAuthRespEnabled()) { // No response should be sent
                respPdu = null ;
            }
            if (snmpServer.getAuthTrapEnabled()) { // A trap must be sent
                try {
                    snmpServer.snmpV1Trap(SnmpPduTrap.
                                          trapAuthenticationFailure, 0,
                                          new SnmpVarBindList()) ;
                }
                catch(Exception x) {
                    if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINEST)) {
                        SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, dbgTag,
                           "makeResponsePdu", "Failure when sending authentication trap", x);
                    }
                }
            }
        }
    }
    return respPdu ;
}
项目:OpenJSharp    文件:SnmpRequestHandler.java   
/**
 * Here we make the response pdu for a bulk request.
 * At this level, the result is never null.
 */
private SnmpPduPacket makeGetBulkResponsePdu(SnmpPduBulk req,
                                             Object userData) {

    SnmpVarBind[] respVarBindList;

    // RFC 1905, Section 4.2.3, p14
    int L = req.varBindList.length ;
    int N = Math.max(Math.min(req.nonRepeaters, L), 0) ;
    int M = Math.max(req.maxRepetitions, 0) ;
    int R = L - N ;

    if (req.varBindList == null) {
        // Good ! Let's make a full response pdu.
        //
        return newValidResponsePdu(req, null) ;
    }

    // Split the request into subrequests.
    //
    splitBulkRequest(req, N, M, R);
    SnmpPduPacket result= executeSubRequest(req,userData);
    if (result != null)
        return result;

    respVarBindList= mergeBulkResponses(N + (M * R));

    // Now we remove useless trailing endOfMibView.
    //
    int m2 ; // respVarBindList[m2] item and next are going to be removed
    int t = respVarBindList.length ;
    while ((t > N) && (respVarBindList[t-1].
                       value.equals(SnmpVarBind.endOfMibView))) {
        t-- ;
    }
    if (t == N)
        m2 = N + R ;
    else
        m2 = N + ((t -1 -N) / R + 2) * R ; // Trivial, of course...
    if (m2 < respVarBindList.length) {
        SnmpVarBind[] truncatedList = new SnmpVarBind[m2] ;
        for (int i = 0 ; i < m2 ; i++) {
            truncatedList[i] = respVarBindList[i] ;
        }
        respVarBindList = truncatedList ;
    }

    // Good ! Let's make a full response pdu.
    //
    return newValidResponsePdu(req, respVarBindList) ;
}
项目:jdk8u-jdk    文件:SnmpRequestHandler.java   
/**
 * Here we make a response pdu from a request pdu.
 * We return null if there is no pdu to reply.
 */
private SnmpPduPacket makeResponsePdu(SnmpPduPacket reqPdu,
                                      Object userData) {

    SnmpAdaptorServer snmpServer = (SnmpAdaptorServer)adaptorServer ;
    SnmpPduPacket respPdu = null ;

    snmpServer.updateRequestCounters(reqPdu.type) ;
    if (reqPdu.varBindList != null)
        snmpServer.updateVarCounters(reqPdu.type,
                                     reqPdu.varBindList.length) ;

    if (checkPduType(reqPdu)) {
        respPdu = checkAcl(reqPdu) ;
        if (respPdu == null) { // reqPdu is accepted by ACLs
            if (mibs.size() < 1) {
                if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) {
                    SNMP_ADAPTOR_LOGGER.logp(Level.FINER, dbgTag,
                       "makeResponsePdu", "Request " + reqPdu.requestId +
                       " received but no MIB registered.");
                }
                return makeNoMibErrorPdu((SnmpPduRequest)reqPdu, userData);
            }
            switch(reqPdu.type) {
            case SnmpPduPacket.pduGetRequestPdu:
            case SnmpPduPacket.pduGetNextRequestPdu:
            case SnmpPduPacket.pduSetRequestPdu:
                respPdu = makeGetSetResponsePdu((SnmpPduRequest)reqPdu,
                                                userData) ;
                break ;

            case SnmpPduPacket.pduGetBulkRequestPdu:
                respPdu = makeGetBulkResponsePdu((SnmpPduBulk)reqPdu,
                                                 userData) ;
                break ;
            }
        }
        else { // reqPdu is rejected by ACLs
            // respPdu contains the error response to be sent.
            // We send this response only if authResEnabled is true.
            if (!snmpServer.getAuthRespEnabled()) { // No response should be sent
                respPdu = null ;
            }
            if (snmpServer.getAuthTrapEnabled()) { // A trap must be sent
                try {
                    snmpServer.snmpV1Trap(SnmpPduTrap.
                                          trapAuthenticationFailure, 0,
                                          new SnmpVarBindList()) ;
                }
                catch(Exception x) {
                    if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINEST)) {
                        SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, dbgTag,
                           "makeResponsePdu", "Failure when sending authentication trap", x);
                    }
                }
            }
        }
    }
    return respPdu ;
}
项目:jdk8u-jdk    文件:SnmpRequestHandler.java   
/**
 * Here we make the response pdu for a bulk request.
 * At this level, the result is never null.
 */
private SnmpPduPacket makeGetBulkResponsePdu(SnmpPduBulk req,
                                             Object userData) {

    SnmpVarBind[] respVarBindList;

    // RFC 1905, Section 4.2.3, p14
    int L = req.varBindList.length ;
    int N = Math.max(Math.min(req.nonRepeaters, L), 0) ;
    int M = Math.max(req.maxRepetitions, 0) ;
    int R = L - N ;

    if (req.varBindList == null) {
        // Good ! Let's make a full response pdu.
        //
        return newValidResponsePdu(req, null) ;
    }

    // Split the request into subrequests.
    //
    splitBulkRequest(req, N, M, R);
    SnmpPduPacket result= executeSubRequest(req,userData);
    if (result != null)
        return result;

    respVarBindList= mergeBulkResponses(N + (M * R));

    // Now we remove useless trailing endOfMibView.
    //
    int m2 ; // respVarBindList[m2] item and next are going to be removed
    int t = respVarBindList.length ;
    while ((t > N) && (respVarBindList[t-1].
                       value.equals(SnmpVarBind.endOfMibView))) {
        t-- ;
    }
    if (t == N)
        m2 = N + R ;
    else
        m2 = N + ((t -1 -N) / R + 2) * R ; // Trivial, of course...
    if (m2 < respVarBindList.length) {
        SnmpVarBind[] truncatedList = new SnmpVarBind[m2] ;
        for (int i = 0 ; i < m2 ; i++) {
            truncatedList[i] = respVarBindList[i] ;
        }
        respVarBindList = truncatedList ;
    }

    // Good ! Let's make a full response pdu.
    //
    return newValidResponsePdu(req, respVarBindList) ;
}
项目:jdk8u_jdk    文件:SnmpRequestHandler.java   
/**
 * Here we make a response pdu from a request pdu.
 * We return null if there is no pdu to reply.
 */
private SnmpPduPacket makeResponsePdu(SnmpPduPacket reqPdu,
                                      Object userData) {

    SnmpAdaptorServer snmpServer = (SnmpAdaptorServer)adaptorServer ;
    SnmpPduPacket respPdu = null ;

    snmpServer.updateRequestCounters(reqPdu.type) ;
    if (reqPdu.varBindList != null)
        snmpServer.updateVarCounters(reqPdu.type,
                                     reqPdu.varBindList.length) ;

    if (checkPduType(reqPdu)) {
        respPdu = checkAcl(reqPdu) ;
        if (respPdu == null) { // reqPdu is accepted by ACLs
            if (mibs.size() < 1) {
                if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) {
                    SNMP_ADAPTOR_LOGGER.logp(Level.FINER, dbgTag,
                       "makeResponsePdu", "Request " + reqPdu.requestId +
                       " received but no MIB registered.");
                }
                return makeNoMibErrorPdu((SnmpPduRequest)reqPdu, userData);
            }
            switch(reqPdu.type) {
            case SnmpPduPacket.pduGetRequestPdu:
            case SnmpPduPacket.pduGetNextRequestPdu:
            case SnmpPduPacket.pduSetRequestPdu:
                respPdu = makeGetSetResponsePdu((SnmpPduRequest)reqPdu,
                                                userData) ;
                break ;

            case SnmpPduPacket.pduGetBulkRequestPdu:
                respPdu = makeGetBulkResponsePdu((SnmpPduBulk)reqPdu,
                                                 userData) ;
                break ;
            }
        }
        else { // reqPdu is rejected by ACLs
            // respPdu contains the error response to be sent.
            // We send this response only if authResEnabled is true.
            if (!snmpServer.getAuthRespEnabled()) { // No response should be sent
                respPdu = null ;
            }
            if (snmpServer.getAuthTrapEnabled()) { // A trap must be sent
                try {
                    snmpServer.snmpV1Trap(SnmpPduTrap.
                                          trapAuthenticationFailure, 0,
                                          new SnmpVarBindList()) ;
                }
                catch(Exception x) {
                    if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINEST)) {
                        SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, dbgTag,
                           "makeResponsePdu", "Failure when sending authentication trap", x);
                    }
                }
            }
        }
    }
    return respPdu ;
}
项目:jdk8u_jdk    文件:SnmpRequestHandler.java   
/**
 * Here we make the response pdu for a bulk request.
 * At this level, the result is never null.
 */
private SnmpPduPacket makeGetBulkResponsePdu(SnmpPduBulk req,
                                             Object userData) {

    SnmpVarBind[] respVarBindList;

    // RFC 1905, Section 4.2.3, p14
    int L = req.varBindList.length ;
    int N = Math.max(Math.min(req.nonRepeaters, L), 0) ;
    int M = Math.max(req.maxRepetitions, 0) ;
    int R = L - N ;

    if (req.varBindList == null) {
        // Good ! Let's make a full response pdu.
        //
        return newValidResponsePdu(req, null) ;
    }

    // Split the request into subrequests.
    //
    splitBulkRequest(req, N, M, R);
    SnmpPduPacket result= executeSubRequest(req,userData);
    if (result != null)
        return result;

    respVarBindList= mergeBulkResponses(N + (M * R));

    // Now we remove useless trailing endOfMibView.
    //
    int m2 ; // respVarBindList[m2] item and next are going to be removed
    int t = respVarBindList.length ;
    while ((t > N) && (respVarBindList[t-1].
                       value.equals(SnmpVarBind.endOfMibView))) {
        t-- ;
    }
    if (t == N)
        m2 = N + R ;
    else
        m2 = N + ((t -1 -N) / R + 2) * R ; // Trivial, of course...
    if (m2 < respVarBindList.length) {
        SnmpVarBind[] truncatedList = new SnmpVarBind[m2] ;
        for (int i = 0 ; i < m2 ; i++) {
            truncatedList[i] = respVarBindList[i] ;
        }
        respVarBindList = truncatedList ;
    }

    // Good ! Let's make a full response pdu.
    //
    return newValidResponsePdu(req, respVarBindList) ;
}
项目:lookaside_java-1.8.0-openjdk    文件:SnmpRequestHandler.java   
/**
 * Here we make a response pdu from a request pdu.
 * We return null if there is no pdu to reply.
 */
private SnmpPduPacket makeResponsePdu(SnmpPduPacket reqPdu,
                                      Object userData) {

    SnmpAdaptorServer snmpServer = (SnmpAdaptorServer)adaptorServer ;
    SnmpPduPacket respPdu = null ;

    snmpServer.updateRequestCounters(reqPdu.type) ;
    if (reqPdu.varBindList != null)
        snmpServer.updateVarCounters(reqPdu.type,
                                     reqPdu.varBindList.length) ;

    if (checkPduType(reqPdu)) {
        respPdu = checkAcl(reqPdu) ;
        if (respPdu == null) { // reqPdu is accepted by ACLs
            if (mibs.size() < 1) {
                if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) {
                    SNMP_ADAPTOR_LOGGER.logp(Level.FINER, dbgTag,
                       "makeResponsePdu", "Request " + reqPdu.requestId +
                       " received but no MIB registered.");
                }
                return makeNoMibErrorPdu((SnmpPduRequest)reqPdu, userData);
            }
            switch(reqPdu.type) {
            case SnmpPduPacket.pduGetRequestPdu:
            case SnmpPduPacket.pduGetNextRequestPdu:
            case SnmpPduPacket.pduSetRequestPdu:
                respPdu = makeGetSetResponsePdu((SnmpPduRequest)reqPdu,
                                                userData) ;
                break ;

            case SnmpPduPacket.pduGetBulkRequestPdu:
                respPdu = makeGetBulkResponsePdu((SnmpPduBulk)reqPdu,
                                                 userData) ;
                break ;
            }
        }
        else { // reqPdu is rejected by ACLs
            // respPdu contains the error response to be sent.
            // We send this response only if authResEnabled is true.
            if (!snmpServer.getAuthRespEnabled()) { // No response should be sent
                respPdu = null ;
            }
            if (snmpServer.getAuthTrapEnabled()) { // A trap must be sent
                try {
                    snmpServer.snmpV1Trap(SnmpPduTrap.
                                          trapAuthenticationFailure, 0,
                                          new SnmpVarBindList()) ;
                }
                catch(Exception x) {
                    if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINEST)) {
                        SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, dbgTag,
                           "makeResponsePdu", "Failure when sending authentication trap", x);
                    }
                }
            }
        }
    }
    return respPdu ;
}
项目:lookaside_java-1.8.0-openjdk    文件:SnmpRequestHandler.java   
/**
 * Here we make the response pdu for a bulk request.
 * At this level, the result is never null.
 */
private SnmpPduPacket makeGetBulkResponsePdu(SnmpPduBulk req,
                                             Object userData) {

    SnmpVarBind[] respVarBindList;

    // RFC 1905, Section 4.2.3, p14
    int L = req.varBindList.length ;
    int N = Math.max(Math.min(req.nonRepeaters, L), 0) ;
    int M = Math.max(req.maxRepetitions, 0) ;
    int R = L - N ;

    if (req.varBindList == null) {
        // Good ! Let's make a full response pdu.
        //
        return newValidResponsePdu(req, null) ;
    }

    // Split the request into subrequests.
    //
    splitBulkRequest(req, N, M, R);
    SnmpPduPacket result= executeSubRequest(req,userData);
    if (result != null)
        return result;

    respVarBindList= mergeBulkResponses(N + (M * R));

    // Now we remove useless trailing endOfMibView.
    //
    int m2 ; // respVarBindList[m2] item and next are going to be removed
    int t = respVarBindList.length ;
    while ((t > N) && (respVarBindList[t-1].
                       value.equals(SnmpVarBind.endOfMibView))) {
        t-- ;
    }
    if (t == N)
        m2 = N + R ;
    else
        m2 = N + ((t -1 -N) / R + 2) * R ; // Trivial, of course...
    if (m2 < respVarBindList.length) {
        SnmpVarBind[] truncatedList = new SnmpVarBind[m2] ;
        for (int i = 0 ; i < m2 ; i++) {
            truncatedList[i] = respVarBindList[i] ;
        }
        respVarBindList = truncatedList ;
    }

    // Good ! Let's make a full response pdu.
    //
    return newValidResponsePdu(req, respVarBindList) ;
}
项目:infobip-open-jdk-8    文件:SnmpRequestHandler.java   
/**
 * Here we make a response pdu from a request pdu.
 * We return null if there is no pdu to reply.
 */
private SnmpPduPacket makeResponsePdu(SnmpPduPacket reqPdu,
                                      Object userData) {

    SnmpAdaptorServer snmpServer = (SnmpAdaptorServer)adaptorServer ;
    SnmpPduPacket respPdu = null ;

    snmpServer.updateRequestCounters(reqPdu.type) ;
    if (reqPdu.varBindList != null)
        snmpServer.updateVarCounters(reqPdu.type,
                                     reqPdu.varBindList.length) ;

    if (checkPduType(reqPdu)) {
        respPdu = checkAcl(reqPdu) ;
        if (respPdu == null) { // reqPdu is accepted by ACLs
            if (mibs.size() < 1) {
                if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) {
                    SNMP_ADAPTOR_LOGGER.logp(Level.FINER, dbgTag,
                       "makeResponsePdu", "Request " + reqPdu.requestId +
                       " received but no MIB registered.");
                }
                return makeNoMibErrorPdu((SnmpPduRequest)reqPdu, userData);
            }
            switch(reqPdu.type) {
            case SnmpPduPacket.pduGetRequestPdu:
            case SnmpPduPacket.pduGetNextRequestPdu:
            case SnmpPduPacket.pduSetRequestPdu:
                respPdu = makeGetSetResponsePdu((SnmpPduRequest)reqPdu,
                                                userData) ;
                break ;

            case SnmpPduPacket.pduGetBulkRequestPdu:
                respPdu = makeGetBulkResponsePdu((SnmpPduBulk)reqPdu,
                                                 userData) ;
                break ;
            }
        }
        else { // reqPdu is rejected by ACLs
            // respPdu contains the error response to be sent.
            // We send this response only if authResEnabled is true.
            if (!snmpServer.getAuthRespEnabled()) { // No response should be sent
                respPdu = null ;
            }
            if (snmpServer.getAuthTrapEnabled()) { // A trap must be sent
                try {
                    snmpServer.snmpV1Trap(SnmpPduTrap.
                                          trapAuthenticationFailure, 0,
                                          new SnmpVarBindList()) ;
                }
                catch(Exception x) {
                    if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINEST)) {
                        SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, dbgTag,
                           "makeResponsePdu", "Failure when sending authentication trap", x);
                    }
                }
            }
        }
    }
    return respPdu ;
}
项目:infobip-open-jdk-8    文件:SnmpRequestHandler.java   
/**
 * Here we make the response pdu for a bulk request.
 * At this level, the result is never null.
 */
private SnmpPduPacket makeGetBulkResponsePdu(SnmpPduBulk req,
                                             Object userData) {

    SnmpVarBind[] respVarBindList;

    // RFC 1905, Section 4.2.3, p14
    int L = req.varBindList.length ;
    int N = Math.max(Math.min(req.nonRepeaters, L), 0) ;
    int M = Math.max(req.maxRepetitions, 0) ;
    int R = L - N ;

    if (req.varBindList == null) {
        // Good ! Let's make a full response pdu.
        //
        return newValidResponsePdu(req, null) ;
    }

    // Split the request into subrequests.
    //
    splitBulkRequest(req, N, M, R);
    SnmpPduPacket result= executeSubRequest(req,userData);
    if (result != null)
        return result;

    respVarBindList= mergeBulkResponses(N + (M * R));

    // Now we remove useless trailing endOfMibView.
    //
    int m2 ; // respVarBindList[m2] item and next are going to be removed
    int t = respVarBindList.length ;
    while ((t > N) && (respVarBindList[t-1].
                       value.equals(SnmpVarBind.endOfMibView))) {
        t-- ;
    }
    if (t == N)
        m2 = N + R ;
    else
        m2 = N + ((t -1 -N) / R + 2) * R ; // Trivial, of course...
    if (m2 < respVarBindList.length) {
        SnmpVarBind[] truncatedList = new SnmpVarBind[m2] ;
        for (int i = 0 ; i < m2 ; i++) {
            truncatedList[i] = respVarBindList[i] ;
        }
        respVarBindList = truncatedList ;
    }

    // Good ! Let's make a full response pdu.
    //
    return newValidResponsePdu(req, respVarBindList) ;
}
项目:jdk8u-dev-jdk    文件:SnmpRequestHandler.java   
/**
 * Here we make a response pdu from a request pdu.
 * We return null if there is no pdu to reply.
 */
private SnmpPduPacket makeResponsePdu(SnmpPduPacket reqPdu,
                                      Object userData) {

    SnmpAdaptorServer snmpServer = (SnmpAdaptorServer)adaptorServer ;
    SnmpPduPacket respPdu = null ;

    snmpServer.updateRequestCounters(reqPdu.type) ;
    if (reqPdu.varBindList != null)
        snmpServer.updateVarCounters(reqPdu.type,
                                     reqPdu.varBindList.length) ;

    if (checkPduType(reqPdu)) {
        respPdu = checkAcl(reqPdu) ;
        if (respPdu == null) { // reqPdu is accepted by ACLs
            if (mibs.size() < 1) {
                if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) {
                    SNMP_ADAPTOR_LOGGER.logp(Level.FINER, dbgTag,
                       "makeResponsePdu", "Request " + reqPdu.requestId +
                       " received but no MIB registered.");
                }
                return makeNoMibErrorPdu((SnmpPduRequest)reqPdu, userData);
            }
            switch(reqPdu.type) {
            case SnmpPduPacket.pduGetRequestPdu:
            case SnmpPduPacket.pduGetNextRequestPdu:
            case SnmpPduPacket.pduSetRequestPdu:
                respPdu = makeGetSetResponsePdu((SnmpPduRequest)reqPdu,
                                                userData) ;
                break ;

            case SnmpPduPacket.pduGetBulkRequestPdu:
                respPdu = makeGetBulkResponsePdu((SnmpPduBulk)reqPdu,
                                                 userData) ;
                break ;
            }
        }
        else { // reqPdu is rejected by ACLs
            // respPdu contains the error response to be sent.
            // We send this response only if authResEnabled is true.
            if (!snmpServer.getAuthRespEnabled()) { // No response should be sent
                respPdu = null ;
            }
            if (snmpServer.getAuthTrapEnabled()) { // A trap must be sent
                try {
                    snmpServer.snmpV1Trap(SnmpPduTrap.
                                          trapAuthenticationFailure, 0,
                                          new SnmpVarBindList()) ;
                }
                catch(Exception x) {
                    if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINEST)) {
                        SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, dbgTag,
                           "makeResponsePdu", "Failure when sending authentication trap", x);
                    }
                }
            }
        }
    }
    return respPdu ;
}
项目:jdk8u-dev-jdk    文件:SnmpRequestHandler.java   
/**
 * Here we make the response pdu for a bulk request.
 * At this level, the result is never null.
 */
private SnmpPduPacket makeGetBulkResponsePdu(SnmpPduBulk req,
                                             Object userData) {

    SnmpVarBind[] respVarBindList;

    // RFC 1905, Section 4.2.3, p14
    int L = req.varBindList.length ;
    int N = Math.max(Math.min(req.nonRepeaters, L), 0) ;
    int M = Math.max(req.maxRepetitions, 0) ;
    int R = L - N ;

    if (req.varBindList == null) {
        // Good ! Let's make a full response pdu.
        //
        return newValidResponsePdu(req, null) ;
    }

    // Split the request into subrequests.
    //
    splitBulkRequest(req, N, M, R);
    SnmpPduPacket result= executeSubRequest(req,userData);
    if (result != null)
        return result;

    respVarBindList= mergeBulkResponses(N + (M * R));

    // Now we remove useless trailing endOfMibView.
    //
    int m2 ; // respVarBindList[m2] item and next are going to be removed
    int t = respVarBindList.length ;
    while ((t > N) && (respVarBindList[t-1].
                       value.equals(SnmpVarBind.endOfMibView))) {
        t-- ;
    }
    if (t == N)
        m2 = N + R ;
    else
        m2 = N + ((t -1 -N) / R + 2) * R ; // Trivial, of course...
    if (m2 < respVarBindList.length) {
        SnmpVarBind[] truncatedList = new SnmpVarBind[m2] ;
        for (int i = 0 ; i < m2 ; i++) {
            truncatedList[i] = respVarBindList[i] ;
        }
        respVarBindList = truncatedList ;
    }

    // Good ! Let's make a full response pdu.
    //
    return newValidResponsePdu(req, respVarBindList) ;
}
项目:jdk7-jdk    文件:SnmpRequestHandler.java   
/**
 * Here we make a response pdu from a request pdu.
 * We return null if there is no pdu to reply.
 */
private SnmpPduPacket makeResponsePdu(SnmpPduPacket reqPdu,
                                      Object userData) {

    SnmpAdaptorServer snmpServer = (SnmpAdaptorServer)adaptorServer ;
    SnmpPduPacket respPdu = null ;

    snmpServer.updateRequestCounters(reqPdu.type) ;
    if (reqPdu.varBindList != null)
        snmpServer.updateVarCounters(reqPdu.type,
                                     reqPdu.varBindList.length) ;

    if (checkPduType(reqPdu)) {
        respPdu = checkAcl(reqPdu) ;
        if (respPdu == null) { // reqPdu is accepted by ACLs
            if (mibs.size() < 1) {
                if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) {
                    SNMP_ADAPTOR_LOGGER.logp(Level.FINER, dbgTag,
                       "makeResponsePdu", "Request " + reqPdu.requestId +
                       " received but no MIB registered.");
                }
                return makeNoMibErrorPdu((SnmpPduRequest)reqPdu, userData);
            }
            switch(reqPdu.type) {
            case SnmpPduPacket.pduGetRequestPdu:
            case SnmpPduPacket.pduGetNextRequestPdu:
            case SnmpPduPacket.pduSetRequestPdu:
                respPdu = makeGetSetResponsePdu((SnmpPduRequest)reqPdu,
                                                userData) ;
                break ;

            case SnmpPduPacket.pduGetBulkRequestPdu:
                respPdu = makeGetBulkResponsePdu((SnmpPduBulk)reqPdu,
                                                 userData) ;
                break ;
            }
        }
        else { // reqPdu is rejected by ACLs
            // respPdu contains the error response to be sent.
            // We send this response only if authResEnabled is true.
            if (!snmpServer.getAuthRespEnabled()) { // No response should be sent
                respPdu = null ;
            }
            if (snmpServer.getAuthTrapEnabled()) { // A trap must be sent
                try {
                    snmpServer.snmpV1Trap(SnmpPduTrap.
                                          trapAuthenticationFailure, 0,
                                          new SnmpVarBindList()) ;
                }
                catch(Exception x) {
                    if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINEST)) {
                        SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, dbgTag,
                           "makeResponsePdu", "Failure when sending authentication trap", x);
                    }
                }
            }
        }
    }
    return respPdu ;
}
项目:jdk7-jdk    文件:SnmpRequestHandler.java   
/**
 * Here we make the response pdu for a bulk request.
 * At this level, the result is never null.
 */
private SnmpPduPacket makeGetBulkResponsePdu(SnmpPduBulk req,
                                             Object userData) {

    SnmpVarBind[] respVarBindList = null ;

    // RFC 1905, Section 4.2.3, p14
    int L = req.varBindList.length ;
    int N = Math.max(Math.min(req.nonRepeaters, L), 0) ;
    int M = Math.max(req.maxRepetitions, 0) ;
    int R = L - N ;

    if (req.varBindList == null) {
        // Good ! Let's make a full response pdu.
        //
        return newValidResponsePdu(req, null) ;
    }

    // Split the request into subrequests.
    //
    splitBulkRequest(req, N, M, R);
    SnmpPduPacket result= executeSubRequest(req,userData);
    if (result != null)
        return result;

    respVarBindList= mergeBulkResponses(N + (M * R));

    // Now we remove useless trailing endOfMibView.
    //
    int m2 ; // respVarBindList[m2] item and next are going to be removed
    int t = respVarBindList.length ;
    while ((t > N) && (respVarBindList[t-1].
                       value.equals(SnmpVarBind.endOfMibView))) {
        t-- ;
    }
    if (t == N)
        m2 = N + R ;
    else
        m2 = N + ((t -1 -N) / R + 2) * R ; // Trivial, of course...
    if (m2 < respVarBindList.length) {
        SnmpVarBind[] truncatedList = new SnmpVarBind[m2] ;
        for (int i = 0 ; i < m2 ; i++) {
            truncatedList[i] = respVarBindList[i] ;
        }
        respVarBindList = truncatedList ;
    }

    // Good ! Let's make a full response pdu.
    //
    return newValidResponsePdu(req, respVarBindList) ;
}
项目:openjdk-source-code-learn    文件:SnmpRequestHandler.java   
/**
 * Here we make a response pdu from a request pdu.
 * We return null if there is no pdu to reply.
 */
private SnmpPduPacket makeResponsePdu(SnmpPduPacket reqPdu,
                                      Object userData) {

    SnmpAdaptorServer snmpServer = (SnmpAdaptorServer)adaptorServer ;
    SnmpPduPacket respPdu = null ;

    snmpServer.updateRequestCounters(reqPdu.type) ;
    if (reqPdu.varBindList != null)
        snmpServer.updateVarCounters(reqPdu.type,
                                     reqPdu.varBindList.length) ;

    if (checkPduType(reqPdu)) {
        respPdu = checkAcl(reqPdu) ;
        if (respPdu == null) { // reqPdu is accepted by ACLs
            if (mibs.size() < 1) {
                if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) {
                    SNMP_ADAPTOR_LOGGER.logp(Level.FINER, dbgTag,
                       "makeResponsePdu", "Request " + reqPdu.requestId +
                       " received but no MIB registered.");
                }
                return makeNoMibErrorPdu((SnmpPduRequest)reqPdu, userData);
            }
            switch(reqPdu.type) {
            case SnmpPduPacket.pduGetRequestPdu:
            case SnmpPduPacket.pduGetNextRequestPdu:
            case SnmpPduPacket.pduSetRequestPdu:
                respPdu = makeGetSetResponsePdu((SnmpPduRequest)reqPdu,
                                                userData) ;
                break ;

            case SnmpPduPacket.pduGetBulkRequestPdu:
                respPdu = makeGetBulkResponsePdu((SnmpPduBulk)reqPdu,
                                                 userData) ;
                break ;
            }
        }
        else { // reqPdu is rejected by ACLs
            // respPdu contains the error response to be sent.
            // We send this response only if authResEnabled is true.
            if (!snmpServer.getAuthRespEnabled()) { // No response should be sent
                respPdu = null ;
            }
            if (snmpServer.getAuthTrapEnabled()) { // A trap must be sent
                try {
                    snmpServer.snmpV1Trap(SnmpPduTrap.
                                          trapAuthenticationFailure, 0,
                                          new SnmpVarBindList()) ;
                }
                catch(Exception x) {
                    if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINEST)) {
                        SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, dbgTag,
                           "makeResponsePdu", "Failure when sending authentication trap", x);
                    }
                }
            }
        }
    }
    return respPdu ;
}
项目:openjdk-source-code-learn    文件:SnmpRequestHandler.java   
/**
 * Here we make the response pdu for a bulk request.
 * At this level, the result is never null.
 */
private SnmpPduPacket makeGetBulkResponsePdu(SnmpPduBulk req,
                                             Object userData) {

    SnmpVarBind[] respVarBindList = null ;

    // RFC 1905, Section 4.2.3, p14
    int L = req.varBindList.length ;
    int N = Math.max(Math.min(req.nonRepeaters, L), 0) ;
    int M = Math.max(req.maxRepetitions, 0) ;
    int R = L - N ;

    if (req.varBindList == null) {
        // Good ! Let's make a full response pdu.
        //
        return newValidResponsePdu(req, null) ;
    }

    // Split the request into subrequests.
    //
    splitBulkRequest(req, N, M, R);
    SnmpPduPacket result= executeSubRequest(req,userData);
    if (result != null)
        return result;

    respVarBindList= mergeBulkResponses(N + (M * R));

    // Now we remove useless trailing endOfMibView.
    //
    int m2 ; // respVarBindList[m2] item and next are going to be removed
    int t = respVarBindList.length ;
    while ((t > N) && (respVarBindList[t-1].
                       value.equals(SnmpVarBind.endOfMibView))) {
        t-- ;
    }
    if (t == N)
        m2 = N + R ;
    else
        m2 = N + ((t -1 -N) / R + 2) * R ; // Trivial, of course...
    if (m2 < respVarBindList.length) {
        SnmpVarBind[] truncatedList = new SnmpVarBind[m2] ;
        for (int i = 0 ; i < m2 ; i++) {
            truncatedList[i] = respVarBindList[i] ;
        }
        respVarBindList = truncatedList ;
    }

    // Good ! Let's make a full response pdu.
    //
    return newValidResponsePdu(req, respVarBindList) ;
}
项目:OLD-OpenJDK8    文件:SnmpRequestHandler.java   
/**
 * Here we make a response pdu from a request pdu.
 * We return null if there is no pdu to reply.
 */
private SnmpPduPacket makeResponsePdu(SnmpPduPacket reqPdu,
                                      Object userData) {

    SnmpAdaptorServer snmpServer = (SnmpAdaptorServer)adaptorServer ;
    SnmpPduPacket respPdu = null ;

    snmpServer.updateRequestCounters(reqPdu.type) ;
    if (reqPdu.varBindList != null)
        snmpServer.updateVarCounters(reqPdu.type,
                                     reqPdu.varBindList.length) ;

    if (checkPduType(reqPdu)) {
        respPdu = checkAcl(reqPdu) ;
        if (respPdu == null) { // reqPdu is accepted by ACLs
            if (mibs.size() < 1) {
                if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) {
                    SNMP_ADAPTOR_LOGGER.logp(Level.FINER, dbgTag,
                       "makeResponsePdu", "Request " + reqPdu.requestId +
                       " received but no MIB registered.");
                }
                return makeNoMibErrorPdu((SnmpPduRequest)reqPdu, userData);
            }
            switch(reqPdu.type) {
            case SnmpPduPacket.pduGetRequestPdu:
            case SnmpPduPacket.pduGetNextRequestPdu:
            case SnmpPduPacket.pduSetRequestPdu:
                respPdu = makeGetSetResponsePdu((SnmpPduRequest)reqPdu,
                                                userData) ;
                break ;

            case SnmpPduPacket.pduGetBulkRequestPdu:
                respPdu = makeGetBulkResponsePdu((SnmpPduBulk)reqPdu,
                                                 userData) ;
                break ;
            }
        }
        else { // reqPdu is rejected by ACLs
            // respPdu contains the error response to be sent.
            // We send this response only if authResEnabled is true.
            if (!snmpServer.getAuthRespEnabled()) { // No response should be sent
                respPdu = null ;
            }
            if (snmpServer.getAuthTrapEnabled()) { // A trap must be sent
                try {
                    snmpServer.snmpV1Trap(SnmpPduTrap.
                                          trapAuthenticationFailure, 0,
                                          new SnmpVarBindList()) ;
                }
                catch(Exception x) {
                    if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINEST)) {
                        SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, dbgTag,
                           "makeResponsePdu", "Failure when sending authentication trap", x);
                    }
                }
            }
        }
    }
    return respPdu ;
}
项目:OLD-OpenJDK8    文件:SnmpRequestHandler.java   
/**
 * Here we make the response pdu for a bulk request.
 * At this level, the result is never null.
 */
private SnmpPduPacket makeGetBulkResponsePdu(SnmpPduBulk req,
                                             Object userData) {

    SnmpVarBind[] respVarBindList;

    // RFC 1905, Section 4.2.3, p14
    int L = req.varBindList.length ;
    int N = Math.max(Math.min(req.nonRepeaters, L), 0) ;
    int M = Math.max(req.maxRepetitions, 0) ;
    int R = L - N ;

    if (req.varBindList == null) {
        // Good ! Let's make a full response pdu.
        //
        return newValidResponsePdu(req, null) ;
    }

    // Split the request into subrequests.
    //
    splitBulkRequest(req, N, M, R);
    SnmpPduPacket result= executeSubRequest(req,userData);
    if (result != null)
        return result;

    respVarBindList= mergeBulkResponses(N + (M * R));

    // Now we remove useless trailing endOfMibView.
    //
    int m2 ; // respVarBindList[m2] item and next are going to be removed
    int t = respVarBindList.length ;
    while ((t > N) && (respVarBindList[t-1].
                       value.equals(SnmpVarBind.endOfMibView))) {
        t-- ;
    }
    if (t == N)
        m2 = N + R ;
    else
        m2 = N + ((t -1 -N) / R + 2) * R ; // Trivial, of course...
    if (m2 < respVarBindList.length) {
        SnmpVarBind[] truncatedList = new SnmpVarBind[m2] ;
        for (int i = 0 ; i < m2 ; i++) {
            truncatedList[i] = respVarBindList[i] ;
        }
        respVarBindList = truncatedList ;
    }

    // Good ! Let's make a full response pdu.
    //
    return newValidResponsePdu(req, respVarBindList) ;
}
项目:openjdk-jdk7u-jdk    文件:SnmpRequestHandler.java   
/**
 * Here we make a response pdu from a request pdu.
 * We return null if there is no pdu to reply.
 */
private SnmpPduPacket makeResponsePdu(SnmpPduPacket reqPdu,
                                      Object userData) {

    SnmpAdaptorServer snmpServer = (SnmpAdaptorServer)adaptorServer ;
    SnmpPduPacket respPdu = null ;

    snmpServer.updateRequestCounters(reqPdu.type) ;
    if (reqPdu.varBindList != null)
        snmpServer.updateVarCounters(reqPdu.type,
                                     reqPdu.varBindList.length) ;

    if (checkPduType(reqPdu)) {
        respPdu = checkAcl(reqPdu) ;
        if (respPdu == null) { // reqPdu is accepted by ACLs
            if (mibs.size() < 1) {
                if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) {
                    SNMP_ADAPTOR_LOGGER.logp(Level.FINER, dbgTag,
                       "makeResponsePdu", "Request " + reqPdu.requestId +
                       " received but no MIB registered.");
                }
                return makeNoMibErrorPdu((SnmpPduRequest)reqPdu, userData);
            }
            switch(reqPdu.type) {
            case SnmpPduPacket.pduGetRequestPdu:
            case SnmpPduPacket.pduGetNextRequestPdu:
            case SnmpPduPacket.pduSetRequestPdu:
                respPdu = makeGetSetResponsePdu((SnmpPduRequest)reqPdu,
                                                userData) ;
                break ;

            case SnmpPduPacket.pduGetBulkRequestPdu:
                respPdu = makeGetBulkResponsePdu((SnmpPduBulk)reqPdu,
                                                 userData) ;
                break ;
            }
        }
        else { // reqPdu is rejected by ACLs
            // respPdu contains the error response to be sent.
            // We send this response only if authResEnabled is true.
            if (!snmpServer.getAuthRespEnabled()) { // No response should be sent
                respPdu = null ;
            }
            if (snmpServer.getAuthTrapEnabled()) { // A trap must be sent
                try {
                    snmpServer.snmpV1Trap(SnmpPduTrap.
                                          trapAuthenticationFailure, 0,
                                          new SnmpVarBindList()) ;
                }
                catch(Exception x) {
                    if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINEST)) {
                        SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, dbgTag,
                           "makeResponsePdu", "Failure when sending authentication trap", x);
                    }
                }
            }
        }
    }
    return respPdu ;
}
项目:openjdk-jdk7u-jdk    文件:SnmpRequestHandler.java   
/**
 * Here we make the response pdu for a bulk request.
 * At this level, the result is never null.
 */
private SnmpPduPacket makeGetBulkResponsePdu(SnmpPduBulk req,
                                             Object userData) {

    SnmpVarBind[] respVarBindList = null ;

    // RFC 1905, Section 4.2.3, p14
    int L = req.varBindList.length ;
    int N = Math.max(Math.min(req.nonRepeaters, L), 0) ;
    int M = Math.max(req.maxRepetitions, 0) ;
    int R = L - N ;

    if (req.varBindList == null) {
        // Good ! Let's make a full response pdu.
        //
        return newValidResponsePdu(req, null) ;
    }

    // Split the request into subrequests.
    //
    splitBulkRequest(req, N, M, R);
    SnmpPduPacket result= executeSubRequest(req,userData);
    if (result != null)
        return result;

    respVarBindList= mergeBulkResponses(N + (M * R));

    // Now we remove useless trailing endOfMibView.
    //
    int m2 ; // respVarBindList[m2] item and next are going to be removed
    int t = respVarBindList.length ;
    while ((t > N) && (respVarBindList[t-1].
                       value.equals(SnmpVarBind.endOfMibView))) {
        t-- ;
    }
    if (t == N)
        m2 = N + R ;
    else
        m2 = N + ((t -1 -N) / R + 2) * R ; // Trivial, of course...
    if (m2 < respVarBindList.length) {
        SnmpVarBind[] truncatedList = new SnmpVarBind[m2] ;
        for (int i = 0 ; i < m2 ; i++) {
            truncatedList[i] = respVarBindList[i] ;
        }
        respVarBindList = truncatedList ;
    }

    // Good ! Let's make a full response pdu.
    //
    return newValidResponsePdu(req, respVarBindList) ;
}