private SnmpUriResponse createResponse(TreeEvent event) { SnmpUriResponse response = new SnmpUriResponse(SnmpUriResponse.Type.TIMEOUT); if (event.getStatus() == TreeEvent.STATUS_OK) { VariableBinding[] vbs = event.getVariableBindings(); int errorStatus = event.getStatus(); response = new SnmpUriResponse(Collections.singletonList(vbs), errorStatus); if (errorStatus == PDU.noError) { response.setResponseType(SnmpUriResponse.Type.NEXT); } } else if (event.getStatus() == TreeEvent.STATUS_EXCEPTION) { response = new SnmpUriResponse(SnmpUriResponse.Type.IO_ERROR, event.getException().getMessage()); } else if (event.getStatus() == TreeEvent.STATUS_REPORT) { response = new SnmpUriResponse(SnmpUriResponse.Type.SECURITY_ERROR, (event.getReportPDU().size()>0 ? event.getReportPDU().get(0).toString() : "<empty report PDU>")); } else if (event.getStatus() == TreeEvent.STATUS_WRONG_ORDER) { response = new SnmpUriResponse(SnmpUriResponse.Type.LEXICOGRAPHIC_ORDER_ERROR); } return response; }
private SnmpUriResponse createResponse(TreeEvent event) { SnmpUriResponse response = new SnmpUriResponse(SnmpUriResponse.Type.TIMEOUT); if (event.getStatus() == TreeEvent.STATUS_OK) { VariableBinding[] vbs = event.getVariableBindings(); int errorStatus = event.getStatus(); response = new SnmpUriResponse(Collections.singletonList(vbs), errorStatus); if (errorStatus == PDU.noError) { response.setResponseType(SnmpUriResponse.Type.NEXT); } } else if (event.getStatus() == TreeEvent.STATUS_EXCEPTION) { response = new SnmpUriResponse(SnmpUriResponse.Type.IO_ERROR, event.getException().getMessage()); } else if (event.getStatus() == TreeEvent.STATUS_REPORT) { response = new SnmpUriResponse(SnmpUriResponse.Type.SECURITY_ERROR, (event.getReportPDU().size()>0 ? event.getReportPDU().get(0).toString() : "<empty report PDU>")); } else if (event.getStatus() == TreeEvent.STATUS_WRONG_ORDER) { response = new SnmpUriResponse(SnmpUriResponse.Type.LEXICOGRAPHIC_ORDER_ERROR); } return response; }
public SnmpUriResponse browse(URI url) throws UnknownHostException { SnmpUriResponse response = new SnmpUriResponse(PDU.genErr); Request request = createSnmpRequest(url); PDU pdu = request.getPdu(); switch (request.getType()) { case GET: pdu.setType(PDU.GET); pdu.addAll(VariableBinding.createFromOIDs(request.getOIDs())); response = sendSnmpRequest(request, pdu); break; case NEXT: pdu.setType(PDU.GETNEXT); pdu.addAll(VariableBinding.createFromOIDs(request.getOIDs())); response = sendSnmpRequest(request, pdu); break; case SUBTREE: TreeUtils treeUtils = new TreeUtils(snmp, pduFactory); List<TreeEvent> treeEventList = treeUtils.walk(request.getTarget(), request.getOIDs()); List<VariableBinding[]> vbs = new ArrayList<VariableBinding[]>(treeEventList.size()); int errorStatus = PDU.noError; for (TreeEvent treeEvent : treeEventList) { vbs.add(treeEvent.getVariableBindings()); errorStatus = treeEvent.getStatus(); } response = new SnmpUriResponse(vbs, errorStatus); break; } return response; }
public SnmpUriResponse browse(URI url) throws UnknownHostException { SnmpUriResponse response = new SnmpUriResponse(PDU.genErr); Request request = createSnmpRequest(url); PDU pdu = request.getPdu(); switch (request.getType()) { case GET: pdu.setType(PDU.GET); pdu.addAll(VariableBinding.createFromOIDs(request.getOIDs())); response = sendSnmpRequest(request, pdu); break; case NEXT: pdu.setType(PDU.GETNEXT); pdu.addAll(VariableBinding.createFromOIDs(request.getOIDs())); response = sendSnmpRequest(request, pdu); break; case SUBTREE: TreeUtils treeUtils = new TreeUtils(snmp, pduFactory); List<TreeEvent> treeEventList = treeUtils.walk(request.getTarget(), request.getOIDs()); List<VariableBinding[]> vbs = new ArrayList<VariableBinding[]>(treeEventList.size()); int errorStatus = PDU.noError; for (TreeEvent treeEvent : treeEventList) { vbs.add(treeEvent.getVariableBindings()); errorStatus = treeEvent.getStatus(); } response = new SnmpUriResponse(vbs, errorStatus); break; } return response; }