📄 ospf_mib_utilities.c
字号:
switch( exception ) { case MAPI_NO_EXCEPTION: pExcStr = "no exception"; break; case MAPI_NO_SUCH_OBJECT: pExcStr = "no such object"; break; case MAPI_NO_SUCH_INSTANCE: pExcStr = "no such instance"; break; case MAPI_END_OF_MIB_VIEW: pExcStr = "end of mib view"; break; case MAPI_BUFFER_TOO_SHORT: pExcStr = "buffer too short"; break; default: return; } printf("1. %s.%s [%s] %s\n", pObjInfo->objectName, pOidStr, pExcStr, pExcStr); return;}/***************************************************************************************** ospf_mApi_getError - get the error string** This routine converts the MIB API Error Code to printable ascii string.** RETURNS: Error String** NOMANUAL*/LOCAL char *ospf_mApi_getError( mApiError_t error, BOOL tag ){ char *pErrorStr; switch( error ) { case MAPI_NO_ERROR: if ( tag == TRUE ) pErrorStr = "noError"; else pErrorStr = "No Error"; break; case MAPI_ERROR_TOO_BIG: if ( tag == TRUE ) pErrorStr = "errorTooBig"; else pErrorStr = "Error Too Big"; break; case MAPI_GEN_ERROR: if ( tag == TRUE ) pErrorStr = "generalError"; else pErrorStr = "General Error"; break; case MAPI_NO_ACCESS: if ( tag == TRUE ) pErrorStr = "noAccess"; else pErrorStr = "No Access"; break; case MAPI_WRONG_TYPE: if ( tag == TRUE ) pErrorStr = "wrongType"; else pErrorStr = "Wrong Type"; break; case MAPI_WRONG_LENGTH: if ( tag == TRUE ) pErrorStr = "wrongLength"; else pErrorStr = "Wrong Length"; break; case MAPI_WRONG_ENCODING: if ( tag == TRUE ) pErrorStr = "wrongEncoding"; else pErrorStr = "Wrong Encoding"; break; case MAPI_WRONG_VALUE: if ( tag == TRUE ) pErrorStr = "wrongValue"; else pErrorStr = "Wrong Value"; break; case MAPI_NO_CREATION: if ( tag == TRUE ) pErrorStr = "nocreation"; else pErrorStr = "No Creation"; break; case MAPI_INCONSIST_VALUE: if ( tag == TRUE ) pErrorStr = "inconsistentValue"; else pErrorStr = "Inconsistent Value"; break; case MAPI_RESOURCE_UNAVAILABLE: if ( tag == TRUE ) pErrorStr = "resourceUnavailable"; else pErrorStr = "Resource Unavailable"; break; case MAPI_COMMIT_FAILED: if ( tag == TRUE ) pErrorStr = "commitFailed"; else pErrorStr = "Commit Failed"; break; case MAPI_UNDO_FAILED: if ( tag == TRUE ) pErrorStr = "undoFailed"; else pErrorStr = "Undo Failed"; break; case MAPI_AUTHORIZATION_ERROR: if ( tag == TRUE ) pErrorStr = "authorizationError"; else pErrorStr = "Authorization Error"; break; case MAPI_NOT_WRITABLE: if ( tag == TRUE ) pErrorStr = "notWritable"; else pErrorStr = "Not Writable"; break; case MAPI_INCONSIST_NAME: if ( tag == TRUE ) pErrorStr = "inconsistentName"; else pErrorStr = "Inconsistent Name"; break; default: if ( tag == TRUE ) pErrorStr = "unknownError"; else pErrorStr = "Unknown Error"; break; } return pErrorStr;}/***************************************************************************************** ospf_mApi_printError - print the error message** This routine print the error for the Get, Get Next, Test and Commit operations.** RETURNS: N/A** NOMANUAL*/LOCAL void ospf_mApi_printError( ospfMibList_t *pObjInfo, char *pOidStr, mApiError_t error ){ printf("Response Binding:\n"); switch( pObjInfo->objectTag ) { case ospfMibTag_ipaddress: printf("1. %s.%s [%s] %s\n", pObjInfo->objectName, pOidStr, ospf_mApi_getError(error, TRUE), ospf_mApi_getError(error, FALSE)); break; case ospfMibTag_integer: case ospfMibTag_counter: case ospfMibTag_counter32: case ospfMibTag_gauge: case ospfMibTag_gauge32: printf("1. %s.%s [%s] %s\n", pObjInfo->objectName, pOidStr, ospf_mApi_getError(error, TRUE), ospf_mApi_getError(error, FALSE)); break; case ospfMibTag_octetString: break; default: break; } return;}/***************************************************************************************** ospf_mApi_printResult - print the query result** This routine print the query result for the Get, Get Next, Test and Commit operations.** RETURNS: N/A** NOMANUAL*/LOCAL void ospf_mApi_printResult( ospfMibList_t *pObjInfo, char *pOidStr, ulong_t *pValueBuf ){ ulong_t valueBuf; printf("Response Binding:\n"); valueBuf = *(ulong_t *)pValueBuf; switch( pObjInfo->objectTag ) { case ospfMibTag_ipaddress: { uchar_t ipIndex[4]; valueBuf = ntohl(valueBuf); ospf_mApi_ipAddr2OctetString( valueBuf, ipIndex ); printf("1. %s.%s [%s] %i.%i.%i.%i\n", pObjInfo->objectName, pOidStr, ospfMibTagStr[pObjInfo->objectTag], ipIndex[0], ipIndex[1], ipIndex[2], ipIndex[3]); } break; case ospfMibTag_integer: case ospfMibTag_counter: case ospfMibTag_counter32: case ospfMibTag_gauge: case ospfMibTag_gauge32: if ( pObjInfo->objectAltTag == ospfMibAltTag_none ) { printf("1. %s.%s [%s] %ld\n", pObjInfo->objectName, pOidStr, ospfMibTagStr[pObjInfo->objectTag], valueBuf ); } else if ( pObjInfo->objectAltTag == ospfMibAltTag_octetString ) { /* TODO: need to print octet string in hex... */ } else { char altStr[32]; memset( altStr, 0, sizeof(altStr) ); ospf_mApi_getAltTagStr( pObjInfo->objectAltTag, altStr, valueBuf ); printf("1. %s.%s [%s] %s(%ld)\n", pObjInfo->objectName, pOidStr, ospfMibTagStr[pObjInfo->objectTag], altStr, valueBuf ); } break; case ospfMibTag_octetString: break; default: break; } return;}/***************************************************************************************** ospf_mApi_oidValidate - validate the instance OID length** This routine validate the instance OID length.** RETURNS: OK or ERROR** NOMANUAL*/LOCAL STATUS ospf_mApi_oidValidate( int oidLen, mApiReqType_t reqType, int actualOidLen ){ STATUS rc; rc = OK; switch( reqType ) { case MAPI_GET: case MAPI_TEST: case MAPI_COMMIT: case MAPI_COMPLETE: case MAPI_UNDO: if ( oidLen != actualOidLen ) { printf("Invalid OidLen\n"); rc = MAPI_WRONG_OID_LEN; } break; case MAPI_GET_NEXT: /* for MAPI_GET_NEXT, it is acceptable to have oidLen of zero. In that case, * the GET_NEXT operation will return the very first instance found */ if ( (oidLen != 0) && (oidLen != actualOidLen) ) { printf("Invalid OidLen\n"); rc = MAPI_WRONG_OID_LEN; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -