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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ospf_mib_envoy_api.c

?? vxworks下ospf協議棧
?? C
?? 第 1 頁 / 共 3 頁
字號:
        {            if ( reqType == MAPI_GET_NEXT )                nextproc_error(pktp, vbp, GEN_ERR );            else                getproc_error(pktp, vbp, GEN_ERR );            continue;        }        /* copy the returned object value to varbind */        rc = ospf_envoy_getValue( pktp, vbp, pObject, pEnvoyReq );        if ( rc == OK )        {            if ( reqType == MAPI_GET_NEXT )            {                if ( (pObject->exception == MAPI_NO_SUCH_OBJECT) ||                     (pObject->exception == MAPI_NO_SUCH_INSTANCE) )                {                    /* tell SNMP engine to move on to the next object */                    nextproc_no_next(pktp, vbp);                }                else                {                    /* for GET_NEXT request, mib api will also return the OID                      * instance value (whose instance is the SNMP lexicographic                      * successor for tcount/tlist input indentifier) in the OID                     * instance array pointed to by the pInstance pointer. The                      * OID length will be returned in the instanceLen. Install                      * the next instance suffix into varbind.                     */                    nextproc_next_instance(pktp, vbp, 1, &instance );                }            }        }        else        {            if ( reqType == MAPI_GET_NEXT )                nextproc_error(pktp, vbp, mApi2EnvoyErrorGet(pRequest->error));            else                getproc_error(pktp, vbp, GEN_ERR );        }    }    /* reinitialize buffers used by envoy management facility */    ospf_envoy_clearBuffer( pEnvoyReq );    return;}/***************************************************************************************** ospf_envoy_processGetResp - process MIB API GET/GET NEXT response** This is a generic routine to process all the MIB API GET/GET_NEXT response. It is* invoked by getproc or nextproc after retreiving the values of requested objects from* the MIB API. The value of the objects will be copied into the appropriate varbind.* If exceptions reported by MIB API, the appropriate envoy snmp exception will be raised.** RETURNS: N/A** ERRNO: N/A*/void ospf_envoy_processGetResp( VB_T *vbp, SNMP_PKT_T *pktp, envoyRequest_t *pEnvoyReq,                                mApiRequest_t *pRequest, mApiReqType_t reqType,                                int mApiOidOffset){    mApiObject_t   *pObject;    STATUS         rc;    int            vbcount;    vbcount = 0;    for ( ; vbp != NULL && vbcount < pRequest->numObjects; vbp = vbp->vb_link, vbcount++ )    {        pObject = &pRequest->pObjectList[vbcount];        /* assumed the varbind is serailize with the request message */        if ( vbp->vb_ml.ml_last_match != pObject->oidPrefixEnum - mApiOidOffset )        {            if ( reqType == MAPI_GET_NEXT )                nextproc_error(pktp, vbp, GEN_ERR );            else                getproc_error(pktp, vbp, GEN_ERR );            continue;        }        /* copy the returned object value to varbind */        rc = ospf_envoy_getValue( pktp, vbp, pObject, pEnvoyReq );        if ( rc == OK )        {            if ( reqType == MAPI_GET_NEXT )            {                if ( (pObject->exception == MAPI_NO_SUCH_OBJECT) ||                     (pObject->exception == MAPI_NO_SUCH_INSTANCE) )                {                    /* tell SNMP engine to move on to the next object */                    nextproc_no_next(pktp, vbp);                }                else                {                    /* for GET_NEXT request, mib api will also return the OID                      * instance value (whose instance is the SNMP lexicographic                     * successor for tcount/tlist input indentifier) in the OID                      * instance array pointed to by the pInstance pointer. The                      * OID length will be returned in the instanceLen. Install                      * the next instance suffix into varbind.                     */                    nextproc_next_instance( pktp, vbp, pRequest->instanceLen,                                            pRequest->pInstance );                }            }        }        else        {            if ( reqType == MAPI_GET_NEXT )            {                /* tell envoy that there is no next instance */                nextproc_error( pktp, vbp, mApi2EnvoyErrorGet( pRequest->error) );            }            else                getproc_error( pktp, vbp, GEN_ERR );        }    }    /* reinitialize buffers used by envoy management facility */    ospf_envoy_clearBuffer( pEnvoyReq );    return;}/***************************************************************************************** ospf_envoy_buildGetReq - build the MIB API GET/GET_NEXT request** This routine build the MIB API GET/GET_NEXT request message. This routine is based on* the assumption that the number of varbinds will never exceed the number of ulong_t* buffers allocated at init time. It is also assumed that there will be only one* VT_STRING or VT_OPAQUE object type in the varbinds and the exact size of this object* will first be determine by the caller.** RETURNS: OK or ERROR** ERRNO: N/A*/STATUS ospf_envoy_buildGetReq( int tcount, OIDC_T *tlist, VB_T *vbp,                              envoyRequest_t *pEnvoyReq, mApiRequest_t *pRequest,                              int mApiOidOffset ){    VB_T          *group_vbp;    mApiObject_t  *pObject;    STATUS        rc;    int           vbcount;    int           bufCnt;    int           octetCount;    if ( pEnvoyReq == NULL || pRequest == NULL )    {        ospfEnvoyPrintf(("ospfEnvoy_build_getReq:bogus pointer\n"));        return ERROR;    }    /* get number of varbinds */    pRequest->numObjects = ospf_envoy_getVbCount( vbp );    /* if number of varbinds are more than what we can handle, return ERROR */    if ( pRequest->numObjects > pEnvoyReq->numValueBuf )    {        ospfEnvoyPrintf(("ospf_envoy_buildGetReq: vbcount(%i) exceed max(%i)\n",                          pRequest->numObjects, pEnvoyReq->numValueBuf));        return ERROR;    }    /* build the mApiRequest_t structure */    pRequest->pInstance = (ulong_t *)tlist;    pRequest->instanceLen = (ushort_t)tcount;    pRequest->pObjectList = pEnvoyReq->pObjectList;    octetCount = 0;    group_vbp = vbp;    for ( vbcount = 0, bufCnt = 0; group_vbp != NULL && vbcount < pRequest->numObjects          && bufCnt < pEnvoyReq->numValueBuf; vbcount++, group_vbp = group_vbp->vb_link )    {        pObject = &pEnvoyReq->pObjectList[vbcount];        /* initialize the MIB API mApiObject_t structure */        pObject->oidPrefixEnum = group_vbp->vb_ml.ml_last_match + mApiOidOffset;        rc = OK;        switch( group_vbp->vb_ml.ml_leaf->expected_tag)        {            case VT_IPADDRESS:            case VT_NUMBER:            case VT_COUNTER:            case VT_GAUGE:                pObject->pValueBuf = &pEnvoyReq->pValueBuf[bufCnt];                pObject->valueLen = sizeof(ulong_t);                bufCnt++;                break;            case VT_STRING:            case VT_OPAQUE:                /* here we assumed there will be only one octet string object in a                 * tabular row. If we have already processed one, retrurned error                 */                if ( octetCount >= 1 )                {                    ospfEnvoyPrintf(("ospf_envoy_buildGetReq:multiple octet objects!\n"));                    return ERROR;                }                if ( (pEnvoyReq->octetBufLen == 0) || (pEnvoyReq->pOctetBuf == NULL) )                {                    ospfEnvoyPrintf(("ospf_envoy_buildGetReq:No octet buflen!\n"));                    return ERROR;                }                pObject->pValueBuf = pEnvoyReq->pOctetBuf;                pObject->valueLen = pEnvoyReq->octetBufLen;                /* track the number of octet objects that have been processed */                octetCount++;                break;            case VT_COUNTER64:            case VT_OBJECT:            case VT_EMPTY:            default:                ospfEnvoyPrintf(("ospf_envoy_buildGetReq:unsupported object type\n"));                return ERROR;        }    }    return OK;}/***************************************************************************************** ospf_envoy_clearBuffer - reinitialize buffers used by OSPF Envoy Management Facility** This routine reinitialize buffers used by OSPF Envoy Manamgenet Facility. It must be* called each time before the getproc, nextproc, testproc, setproc and/or undoproc* terminates. Notice that the pointer to the pOctetBuf is not freed here. For getproc* and nextproc, Envoy SNMP will free the memory using SNMP_memory_free if memory is* dynamically allocated using SNMP_memory_alloc(). For testproc, setproc and/or undoproc,* the caller must free the memory if it is dynamically allocated (Envoy SNMP will not* free any dynamically allocated memory in this case).** RETURNS: N/A** ERRNO: N/A*/void ospf_envoy_clearBuffer( envoyRequest_t *pEnvoyReq ){    if ( pEnvoyReq == NULL )        return;    pEnvoyReq->bufUsedCnt = 0;    pEnvoyReq->octetBufLen = 0;    pEnvoyReq->dynamic = FALSE;    memset( (char *)pEnvoyReq->pValueBuf, 0, sizeof(ulong_t) * pEnvoyReq->numValueBuf );    memset( (char *)pEnvoyReq->pObjectList, 0,             sizeof(mApiObject_t) * pEnvoyReq->numValueBuf );    memset( (char *)pEnvoyReq->pObjCookie, 0, sizeof(ulong_t) * pEnvoyReq->numValueBuf );    return;}/***************************************************************************************** ospf_mApi_destroy - destory the OSPF Envoy Manamgent facilities** This routine releases all resources that have been allocated for the Manamgent* Interface.** RETURNS: N/A** ERRNOR: N/A**/void ospf_envoy_mApiDestroy( envoyRequest_t *pEnvoyReq ){    if ( pEnvoyReq != NULL )    {        if ( pEnvoyReq->envoyBSem != NULL )            semDelete( pEnvoyReq->envoyBSem );        if ( pEnvoyReq->pValueBuf != NULL )        {            free( (void *)pEnvoyReq->pValueBuf );            pEnvoyReq->pValueBuf = NULL;        }        if ( pEnvoyReq->pObjectList != NULL )        {            free( (void *)pEnvoyReq->pObjectList );            pEnvoyReq->pObjectList = NULL;        }        if ( pEnvoyReq->pObjCookie != NULL )        {            free( (void *)pEnvoyReq->pObjCookie );            pEnvoyReq->pObjCookie = NULL;        }                if ( pEnvoyReq->pOctetBuf != NULL )            SNMP_memory_free( pEnvoyReq->pOctetBuf );        free( (void *)pEnvoyReq );        pEnvoyReq = NULL;    }    return;}/***************************************************************************************** ospf_envoy_mApiInit - initialize OSPF Envoy Management Facilities.** This routine initialize the facilities for managing the OSPF. The initial resources* are allocated.** RETURNS: OK or ERROR** ERRNO: N/A*/envoyRequest_t *ospf_envoy_mApiInit( int numBuf ){    envoyRequest_t  *pEnvoyReq;    if ( numBuf <= 0 )        return NULL;    pEnvoyReq = (envoyRequest_t *)calloc( 1, sizeof(envoyRequest_t) );    if ( pEnvoyReq == NULL )    {        ospfEnvoyPrintf(("ospf_envoy_mAiInit:resource unavailable\n"));        return NULL;    }    /* allocate memory pool that will be used by getproc and getnextproc() */    pEnvoyReq->numValueBuf = numBuf;    pEnvoyReq->pValueBuf = (ulong_t *)calloc( numBuf, sizeof(ulong_t) );    if ( pEnvoyReq->pValueBuf == NULL )    {        ospfEnvoyPrintf(("ospf_envoy_mApiInit:resource unavailable\n"));        free( (void *)pEnvoyReq );        pEnvoyReq = NULL;        return NULL;    }    /* allocate a pool of mApiObject_t data structure */    pEnvoyReq->pObjectList = (mApiObject_t *)calloc( numBuf, sizeof(mApiObject_t) );    if ( pEnvoyReq->pObjectList == NULL )    {        ospfEnvoyPrintf(("ospf_envoy_mApiInit:resource unavailable\n"));        ospf_envoy_mApiDestroy( pEnvoyReq );        return NULL;    }    /* allocate a pool of object cookie */    pEnvoyReq->pObjCookie = (ulong_t *)calloc( numBuf, sizeof(ulong_t) );    if ( pEnvoyReq->pObjCookie == NULL )    {        ospfEnvoyPrintf(("ospf_envoy_mApiInit:resource unavailable\n"));        ospf_envoy_mApiDestroy( pEnvoyReq );        return NULL;    }        /* create binary semaphore with the initial state full for mutual exclusion */    pEnvoyReq->envoyBSem = semBCreate( SEM_Q_FIFO, SEM_FULL );    if ( pEnvoyReq->envoyBSem == NULL )    {        ospfEnvoyPrintf(("ospf_envoy_mApiInit:semBCreate failed\n"));        ospf_envoy_mApiDestroy( pEnvoyReq );        return NULL;    }    /* tell 'em that we are ready */    ospfEnvoyPrintf(("ospf_envoy_mApiInit:completed\n"));    return pEnvoyReq;}#endif /* __OSPF_MIB__ */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美激情一区二区三区四区| 国产aⅴ综合色| 国产精品12区| 99精品视频在线观看| 欧美三级欧美一级| 久久精子c满五个校花| 一区二区三区色| 国产精品一区二区三区乱码| 色偷偷88欧美精品久久久| 欧美成人在线直播| 国产农村妇女毛片精品久久麻豆 | 91色视频在线| 国产精品久久三| 亚洲成人动漫av| av激情亚洲男人天堂| 日韩欧美在线1卡| 亚洲一区二区三区四区在线免费观看 | 专区另类欧美日韩| 免费成人av在线播放| 在线精品视频免费播放| 日韩一区二区三区视频| 亚洲日本一区二区| 国产一区视频导航| 欧美精品 日韩| 亚洲图片欧美激情| 国产乱色国产精品免费视频| 欧美日韩国产色站一区二区三区| 久久久久久久久久久久电影| 天天综合网 天天综合色| 99久久综合狠狠综合久久| 日韩一区二区三区免费看 | 成人av在线看| 精品国精品国产| 日韩精品一二三四| 色综合天天综合网天天看片| 久久久99久久| 久久99国产精品久久99| 在线区一区二视频| 日韩毛片一二三区| 福利视频网站一区二区三区| 日韩欧美在线一区二区三区| 亚洲一区二区视频在线观看| 99精品视频在线观看| 久久看人人爽人人| 国内精品嫩模私拍在线| 日韩亚洲欧美中文三级| 夜夜精品视频一区二区| 91在线云播放| 国产精品女同一区二区三区| 国产精品69毛片高清亚洲| 26uuu国产一区二区三区 | 欧美系列一区二区| 夜夜亚洲天天久久| 欧美日韩国产精品成人| 日韩精品色哟哟| 日韩欧美国产wwwww| 国产传媒欧美日韩成人| 国产精品久久毛片av大全日韩| 99热国产精品| 天堂蜜桃91精品| 日韩免费观看高清完整版| 国产精品一区二区久久精品爱涩| 国产精品免费丝袜| 91久久奴性调教| 男人操女人的视频在线观看欧美| 亚洲精品一区二区精华| 国产不卡一区视频| 亚洲精品免费电影| 91精品婷婷国产综合久久竹菊| 久久爱www久久做| 国产精品久久久久久久午夜片| 一本一道久久a久久精品综合蜜臀| 亚洲一级片在线观看| 91精品午夜视频| 国产凹凸在线观看一区二区| 亚洲免费在线视频一区 二区| 色嗨嗨av一区二区三区| 美女视频一区二区| 国产精品欧美久久久久一区二区| 欧美最新大片在线看| 久久精品国产久精国产爱| 国产日韩欧美激情| 欧美日韩中文字幕一区| 国产精品一线二线三线| 亚洲免费观看视频| 日韩精品一区二区三区视频| av激情综合网| 免费看欧美美女黄的网站| 国产精品乱子久久久久| 欧美日韩aaaaaa| 国产成人三级在线观看| 亚洲成人自拍偷拍| 国产日韩欧美精品电影三级在线| 91高清视频在线| 黑人巨大精品欧美一区| 亚洲免费在线视频一区 二区| 日韩欧美成人一区| 色欧美乱欧美15图片| 黄色成人免费在线| 亚洲国产成人高清精品| 国产亚洲短视频| 欧美日本精品一区二区三区| 国产91富婆露脸刺激对白| 亚洲不卡av一区二区三区| 欧美国产日韩a欧美在线观看 | 国内精品第一页| 欧美又粗又大又爽| 黄色成人免费在线| 亚洲成a人在线观看| 亚洲国产高清aⅴ视频| 91精品国产综合久久香蕉的特点 | 毛片av一区二区| 亚洲人成7777| 久久精品一区八戒影视| 91精品免费观看| 色视频成人在线观看免| 国产精品99久久久久久久女警 | 亚洲综合一区二区三区| 久久久夜色精品亚洲| 91精品国产色综合久久久蜜香臀| 成人福利视频网站| 国产在线精品一区二区不卡了| 亚洲自拍偷拍麻豆| 国产精品丝袜91| 精品处破学生在线二十三| 欧美日韩亚洲综合| 色先锋资源久久综合| 成人福利视频网站| 国产成人免费视频| 久久精品国产精品青草| 午夜欧美2019年伦理| 一区二区三区在线视频免费观看| 国产精品久久久久久久久免费相片| 精品三级在线看| 欧美丰满一区二区免费视频| 91久久一区二区| caoporen国产精品视频| 高清国产一区二区| 国产精品夜夜嗨| 极品少妇xxxx精品少妇| 日韩av不卡一区二区| 天天做天天摸天天爽国产一区 | 国产精品的网站| 国产亚洲自拍一区| 精品国产伦一区二区三区观看方式 | 免费在线欧美视频| 丝袜美腿亚洲综合| 亚洲第一福利一区| 午夜视黄欧洲亚洲| 日韩av在线免费观看不卡| 天天综合色天天综合| 亚洲成人1区2区| 亚洲一区二区免费视频| 亚洲综合一区在线| 亚洲不卡在线观看| 丝袜美腿亚洲综合| 免费在线观看一区二区三区| 日本女优在线视频一区二区| 日韩国产精品大片| 首页欧美精品中文字幕| 天堂蜜桃91精品| 久久国产尿小便嘘嘘| 久久er99热精品一区二区| 精品一区二区久久久| 国产精品12区| 成人黄色大片在线观看| aaa国产一区| 91福利在线播放| 欧美日韩午夜精品| 88在线观看91蜜桃国自产| 欧美一级黄色大片| 亚洲精品一区二区三区蜜桃下载| 久久精品人人做人人爽人人| 国产欧美日韩另类一区| 成人免费在线视频观看| 亚洲精品久久久蜜桃| 午夜日韩在线电影| 精品无人码麻豆乱码1区2区 | 91理论电影在线观看| 在线区一区二视频| 91精品国产一区二区三区蜜臀| 日韩区在线观看| 中文在线一区二区| 亚洲激情在线播放| 石原莉奈在线亚洲二区| 黄色资源网久久资源365| 成人99免费视频| 欧美喷水一区二区| 亚洲精品在线免费观看视频| 国产精品午夜电影| 亚洲丰满少妇videoshd| 另类调教123区| 丁香激情综合五月| 欧美日韩免费观看一区二区三区 | 91免费国产在线| 欧美巨大另类极品videosbest| 精品成人佐山爱一区二区| 国产精品乱码久久久久久| 亚洲成人黄色影院| 国产一区二区三区免费观看|