亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ospf_mib_api.c

?? vxworks下ospf協(xié)議棧
?? C
?? 第 1 頁 / 共 5 頁
字號:
    /* make sure the request message is valid */    if ( pRequest == NULL )    {        mApiOspfError(("ospf_mApi_processGetReq:invalid pRequest pointer.\n"));        return ERROR;    }    /* make sure the arguments in request message are valid */    if ( (pRequest->pInstance == NULL) || (pRequest->numObjects == 0) ||          (pRequest->pObjectList == NULL) )    {        pRequest->error = (ushort_t)MAPI_GEN_ERROR;        pRequest->errorObjIndex = 0;        return ERROR;    }    pRow = NULL;    pRequest->error = (ushort_t)MAPI_NO_ERROR;    key.p = (void *)pRequest->pInstance;    /* lock mib api mutex for exclusive access to mApiOspfClass_t */    semTake( thisMapi->semMapiMutex, WAIT_FOREVER);        /* remember the current request type we are processing */    thisMapi->currMapiReqType = reqType;    switch( reqType )    {        case MAPI_GET_NEXT:            /* instanceLen of zero means the successor is the first entry in the table */            if ( pRequest->instanceLen == 0 )            {                pRow = (void *)avlMinimumGet(pOspfAvlTree->pOspfAvlRoot );            }            else            {                /* sanity check the instanceLen */                if ( pRequest->instanceLen != instanceLen )                {                       pRequest->error = (ushort_t)MAPI_GEN_ERROR;                    pRequest->errorObjIndex = 0;                       semGive( thisMapi->semMapiMutex );                    mApiOspfError(("ospf_mApi_processGetReq:Invalid instanceLen!\n"));                    return ERROR;                }                pRow = (void *)avlSuccessorGet(pOspfAvlTree->pOspfAvlRoot, key,                                               pOspfAvlTree->ospfAvlCompareRtn );            }            break;        case MAPI_GET:        case MAPI_GET_FORCE:            /* sanity check the instanceLen */            if ( pRequest->instanceLen != instanceLen )            {                pRequest->error = (ushort_t)MAPI_GEN_ERROR;                pRequest->errorObjIndex = 0;                semGive( thisMapi->semMapiMutex );                mApiOspfError(("ospf_mApi_processGetReq:Invalid instanceLen!\n"));                return ERROR;            }            /* get the exact instance */            pRow = (void *)avlSearch( pOspfAvlTree->pOspfAvlRoot, key,                                      pOspfAvlTree->ospfAvlCompareRtn );            break;        case MAPI_TEST:        case MAPI_COMMIT:        case MAPI_UNDO:        case MAPI_COMPLETE:        case MAPI_TEST_FORCE:        case MAPI_COMMIT_FORCE:            pRequest->error = (ushort_t)MAPI_WRONG_TYPE;            pRequest->errorObjIndex = 0;            thisMapi->mApiBogusReqCnt++;            semGive( thisMapi->semMapiMutex );            mApiOspfPrintf(("ospf_mApi_processGetReq:bogus request\n"));            return ERROR;    }    if ( pRow == NULL )    {        if ( reqType == MAPI_GET_NEXT )            thisMapi->mApiGetNextReqFailedCnt++;        else            thisMapi->mApiGetReqFailedCnt++;        semGive( thisMapi->semMapiMutex );        pRequest->error = (ushort_t)MAPI_INVALID_INSTANCE;        pRequest->errorObjIndex = 0;        mApiOspfError(("ospf_mApi_processGetReq:%s - no such instance\n",                        mApiRequest[reqType]));        return ERROR;    }    /* walk the request lists and determine the value of the objects to return */    for ( numObjects = 0; numObjects < pRequest->numObjects; numObjects++ )    {        pObject = &pRequest->pObjectList[numObjects];        if ( ospf_mApi_getHelperRtn( pRow, pRequest, pObject ) == ERROR )        {            /* If error ocurrs, then the entire request has failed. No partial data             * is returned. We don't clear out all the previously success request.             * Application must ignore all the returned data.             */            if ( reqType == MAPI_GET_NEXT )                thisMapi->mApiGetNextReqFailedCnt++;            else                thisMapi->mApiGetReqFailedCnt++;            semGive( thisMapi->semMapiMutex );            mApiOspfError(("ospf_mApi_processGetReq:%s failed\n", mApiRequest[reqType]));            return ERROR;        }    }    /* update the index values for GET_NEXT request */    if ( reqType == MAPI_GET_NEXT )        ospf_mApi_indexSetRtn( pRow, pRequest);    semGive( thisMapi->semMapiMutex );    return OK;}/**************************************************************************************** ospf_mApi_databaseFree - free the specified ospf database** This routine free the specified ospf database. The AVL Tree will be erased and all* allocated memory will be freed.** RETURNS: N/A** NOMANUAL*/LOCAL void ospf_mApi_databaseFree( mApiOspfAvlClass_t *pDatabase ){    void  *pNode;    if ( pDatabase == NULL )        return;    if ( pDatabase->pOspfAvlRoot != NULL )        avlTreeErase( &pDatabase->pOspfAvlRoot );    for (;;)    {        pNode = (void *)lstGet( &pDatabase->ospfFreePoolList );        if ( pNode == NULL )            break;        /* free the allocated memory */        free( (void *)pNode );        pNode = NULL;    }    /* frees up memory used for nodes */    lstFree( &pDatabase->ospfFreePoolList );    return;}/***************************************************************************************** ospf_mApi_avlTreeErase - erase all avl tree maintained by MIB API** This routine erase all AVL Tree maintained by MIB API. All memory resources will be* freed.** RETURNS: N/A** NOMANUAL*/LOCAL void ospf_mApi_avlTreeErase( void ){    /* free all the management database */    ospf_mApi_databaseFree( &thisMapi->ospfAreaAvl );    ospf_mApi_databaseFree( &thisMapi->ospfStubAvl );    ospf_mApi_databaseFree( &thisMapi->ospfLsdbAvl );    ospf_mApi_databaseFree( &thisMapi->ospfHostAvl );    ospf_mApi_databaseFree( &thisMapi->ospfIfAvl );    ospf_mApi_databaseFree( &thisMapi->ospfIfMetricAvl );    ospf_mApi_databaseFree( &thisMapi->ospfVirtIfAvl );    ospf_mApi_databaseFree( &thisMapi->ospfNbrAvl );    ospf_mApi_databaseFree( &thisMapi->ospfVirtNbrAvl );    ospf_mApi_databaseFree( &thisMapi->ospfExtLsdbAvl );    ospf_mApi_databaseFree( &thisMapi->ospfAreaAgAvl );    ospf_mApi_databaseFree( &thisMapi->wrnOspfAreaAvl );    ospf_mApi_databaseFree( &thisMapi->wrnOspfLsdbAvl );    ospf_mApi_databaseFree( &thisMapi->wrnOspfLsdbAvl );    ospf_mApi_databaseFree( &thisMapi->wrnOspfExtLsdbAvl );    ospf_mApi_databaseFree( &thisMapi->wrnOspfIfAvl );    return;}/********** misc convertions routines **********//**************************************************************************************** ospf_rs2mApi_errorGet - converts RowStatus library error code to mib api status code** This routine converts the RowStatus library error code to mib api status code. This* routine is used in conjunction with the rowStatus library.** ERROR: mib api error code** NOMANUAL*/int ospf_rs2mApi_errorGet( void *pObjInfo, int rsError ){        mApiRequest_t   *pRequest;    int             rc;    pRequest = (mApiRequest_t *)pObjInfo;    if ( pRequest == NULL )    {        mApiOspfError(("ospf_rs2mApi_errorGet:invalid pRequest pointer.\n"));        return ERROR;    }    rc = ERROR;    switch( rsError )    {        case RS_noError:                        pRequest->error = (int)MAPI_NO_ERROR;            rc = OK;            break;        case RS_wrongValue:                        /* only set the error if one has not been set */            if ( pRequest->error == (int)MAPI_NO_ERROR )                pRequest->error = (int)MAPI_WRONG_VALUE;            break;        case RS_inconsistValue:                        /* only set the error if one has not been set */            if ( pRequest->error == (int)MAPI_NO_ERROR )                pRequest->error = (int)MAPI_INCONSIST_VALUE;            break;        case RS_genError:        default:                        /* only set the error if one has not been set */            if ( pRequest->error == (int)MAPI_NO_ERROR )                 pRequest->error = (int)MAPI_GEN_ERROR;            break;    }    return rc;}/**************************************************************************************** ospf_rs2mApi_reqTypeGet - convert rowStatus request type to MIB API request type** This routine converts the RowStatus request type to the request tyoe defined by* MIB API. This routine is used in conjunction with the RowStatus library.** RETURNS: OK or Error** ERRNO: none** NOMANUAL*/STATUS ospf_rs2mApi_reqTypeGet( int rsRequest, mApiReqType_t *mApiReqType ){    switch ((rsRequest_t)rsRequest)    {        case RS_GET_REQUEST:            *mApiReqType = MAPI_GET;            break;        case RS_SET_NVM_REQUEST:            *mApiReqType = MAPI_COMMIT_FORCE;            break;        case RS_VALIDATE_REQUEST:            *mApiReqType = MAPI_TEST;            break;        case RS_COMMIT_REQUEST:            *mApiReqType = MAPI_COMMIT;            break;        /* TODO: define these for rowStatus library? */        case RS_ERROR_REQUEST:        default:            return ERROR;    }    return OK;}/******************************************************************************** ospf_mApi_IpAddr2OctetString - convert ulong_t IP Address to OCTET STRING.** RETURNS* Value returned is in network order, ipAddr is in host order.** NOMANUAL*/void ospf_mApi_ipAddr2OctetString( ulong_t ipAddr, uchar_t *octetString ){    octetString[ 0 ] = (uchar_t)((ipAddr >> 24) & 0xFF);    octetString[ 1 ] = (uchar_t)((ipAddr >> 16) & 0xFF);    octetString[ 2 ] = (uchar_t)((ipAddr >>  8) & 0xFF);    octetString[ 3 ] = (uchar_t)((ipAddr >>  0) & 0xFF);    return;}/******************************************************************************** ospf_mApi_octetString2IpAddr - convert OCTET STRING to ulong_t IP Address.** RETURNS* Value returned is in host order, octet string is in network order.** NOMANUAL*/ulong_t ospf_mApi_octetString2IpAddr( uchar_t *octetString ){    ulong_t     ipAddr;    ipAddr = 0;    ipAddr |= (octetString[ 0 ] & 0xFF) << 24;    ipAddr |= (octetString[ 1 ] & 0xFF) << 16;    ipAddr |= (octetString[ 2 ] & 0xFF) <<  8;    ipAddr |= (octetString[ 3 ] & 0xFF) <<  0;    return ipAddr;}/**************************************************************************************** * ospf_mApi_ipAddr2IpIndex - convert IP Address to Index * * This routine converts the IP Address (given in ulong_t) to index * * REUTNRS: Index in network order

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲与欧洲av电影| 国产成人一级电影| 一区二区三区 在线观看视频| 国产人成一区二区三区影院| 精品国产精品网麻豆系列| 精品国产欧美一区二区| 日韩欧美激情四射| 精品久久久久久久久久久久久久久久久 | 久久综合九色综合欧美就去吻| 欧美一区二区三区四区高清| 日韩一本二本av| 日韩一区二区三区免费观看| 欧美xxxxx牲另类人与| 日韩精品中文字幕一区| 精品福利一区二区三区免费视频| 精品国产3级a| 国产欧美日韩在线视频| 国产精品久久午夜| 一区二区三区中文字幕电影| 午夜精品久久久久久久蜜桃app| 日韩黄色免费网站| 精品午夜一区二区三区在线观看| 久久福利资源站| 丁香婷婷综合色啪| 97久久精品人人澡人人爽| 91久久精品网| 日韩免费观看2025年上映的电影| 精品国产乱码久久久久久图片| 久久精品免视看| 国产精品盗摄一区二区三区| 一区二区三区四区在线播放 | www.亚洲精品| 欧美日韩一区 二区 三区 久久精品| 欧美电影在线免费观看| 精品av综合导航| 国产精品久久久久久久久免费丝袜| 一区二区三区国产精华| 老司机午夜精品99久久| 不卡av免费在线观看| 欧美日本一道本在线视频| 精品国产乱码久久久久久1区2区| 自拍偷拍国产精品| 6080午夜不卡| 免费看黄色91| 午夜国产精品一区| 国产精品69毛片高清亚洲| 在线观看av不卡| 欧美成人a∨高清免费观看| ...中文天堂在线一区| 日韩国产精品久久久| 丁香桃色午夜亚洲一区二区三区| 欧美在线色视频| 久久精品夜色噜噜亚洲aⅴ| 一区二区不卡在线视频 午夜欧美不卡在| 免费不卡在线视频| av不卡一区二区三区| 日韩色视频在线观看| 亚洲女同一区二区| 国产综合一区二区| 欧美精品久久99| 亚洲欧美一区二区久久 | 成人中文字幕电影| 制服丝袜亚洲色图| 亚洲欧美一区二区三区久本道91 | 国产成人av一区二区三区在线| 欧美性猛交xxxx乱大交退制版 | 国产乱人伦偷精品视频不卡| 91福利在线看| 中文字幕av不卡| 久久精品国产99| 欧美视频三区在线播放| 国产精品美日韩| 激情欧美一区二区三区在线观看| 欧美老女人在线| 亚洲色图一区二区三区| 国产精品1024久久| 日韩免费电影网站| 午夜视频久久久久久| 色综合色综合色综合色综合色综合| 国产欧美日韩在线| 久久国产福利国产秒拍| 这里只有精品99re| 亚洲一线二线三线视频| 91同城在线观看| 中文字幕一区av| 成人午夜视频在线观看| 久久精品日韩一区二区三区| 久久66热偷产精品| 欧美一区二区三区婷婷月色| 婷婷六月综合网| 欧美色区777第一页| 一区二区三区在线观看动漫| 91亚洲精华国产精华精华液| 国产精品成人在线观看| 粉嫩绯色av一区二区在线观看| 精品国产乱码久久久久久闺蜜| 精久久久久久久久久久| 日韩欧美国产一二三区| 麻豆精品久久精品色综合| 日韩视频一区在线观看| 伦理电影国产精品| 久久网站热最新地址| 韩国精品主播一区二区在线观看| 久久综合网色—综合色88| 精品一区二区三区免费观看| 精品国偷自产国产一区| 韩国三级电影一区二区| 久久精品亚洲麻豆av一区二区| 国产在线精品免费av| 久久久精品中文字幕麻豆发布| 国产精品2024| 中文字幕一区二区三区蜜月| 91一区二区在线观看| 亚洲一区二区欧美| 91精品国产91久久久久久最新毛片| 欧美aaa在线| 精品电影一区二区| 福利一区二区在线| 亚洲日本电影在线| 欧美亚洲国产一区在线观看网站| 亚洲一区二区三区中文字幕| 欧美日韩情趣电影| 午夜视频一区二区三区| 日韩欧美国产综合在线一区二区三区| 国产自产2019最新不卡| 国产精品每日更新在线播放网址| 91看片淫黄大片一级| 日韩和欧美一区二区| 久久久一区二区| 91蜜桃传媒精品久久久一区二区| 亚洲一区二区三区小说| 日韩视频一区二区三区| 国产mv日韩mv欧美| 一区二区三区产品免费精品久久75| 91精品国产欧美日韩| 国产精品中文有码| 亚洲精品第一国产综合野| 8x8x8国产精品| 高清不卡一区二区| 五月天一区二区| 国产亚洲一区二区三区| 色婷婷久久久综合中文字幕| 蜜臀久久久久久久| 国产精品久久久久久久久免费相片| 欧美日韩第一区日日骚| 国产高清成人在线| 婷婷国产在线综合| 国产视频一区二区三区在线观看| 99视频精品全部免费在线| 丝袜a∨在线一区二区三区不卡| 久久香蕉国产线看观看99| 欧美综合天天夜夜久久| 国产乱码精品1区2区3区| 一区二区三区成人| 久久久国产精华| 欧美日韩成人一区| 99久久精品免费观看| 麻豆91在线播放| 一区二区三区成人在线视频| 久久久亚洲午夜电影| 欧美手机在线视频| 成人综合在线网站| 美女脱光内衣内裤视频久久网站| 国产精品久久久久久久久久免费看| 欧美一三区三区四区免费在线看| 成人爱爱电影网址| 久久97超碰色| 日韩综合一区二区| 亚洲欧美一区二区不卡| 国产欧美日韩三级| 欧美一二三区精品| 欧美伊人久久久久久午夜久久久久| 国产福利精品导航| 青青草原综合久久大伊人精品| 亚洲乱码日产精品bd| 亚洲国产成人午夜在线一区| 欧美白人最猛性xxxxx69交| 91福利社在线观看| 成人精品免费网站| 久久99精品久久只有精品| 亚洲午夜在线视频| 亚洲欧美日韩国产综合在线| 国产日本一区二区| 2014亚洲片线观看视频免费| 日韩视频一区二区| 91精品国产入口| 欧美老肥妇做.爰bbww视频| 色av综合在线| 91亚洲精品乱码久久久久久蜜桃| 成人午夜激情片| 国产福利一区在线| 国内成+人亚洲+欧美+综合在线| 午夜久久久久久久久| 一区二区三区免费在线观看| 17c精品麻豆一区二区免费| 欧美激情一区三区| 国产精品理论片| 国产精品污污网站在线观看| 国产亚洲精久久久久久| 国产欧美一区二区精品性色超碰 |