⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zanportpropertymib.c

📁 dot1x认证源码,包括dot1x数据包的收发,认证的配置,MIB的设计等
💻 C
📖 第 1 页 / 共 2 页
字号:
		pIdb->indexSubIdCount = 2;
		*propertyNode = pPropertyNode;
					
		return OK;
	}

	
	return (pPropertyNode == NULL) ? ERROR : OK;
} 

/* %%EndUserCode   zanPortPropertyMib_UserFunctions */


/****************************************************************************
*
* zanPortPropertyMibInit - initialize/register zanPortPropertyMib and objects.
*
* This routine initializes the modules IDB routines.
*
* RETURNS: OK or ERROR
*
* ERRNO: N/A
*/

STATUS zanPortPropertyMibInit
    (
    void * parm1,
    void * parm2
    )
    {
    STATUS    rc;

    /* %%BeginUserCode zanPortPropertyMibInit_Prolog */
    /* %%EndUserCode   zanPortPropertyMibInit_Prolog */

    rc = OK;

    /* %%BeginUserCode zanPortPropertyMibInit_Body */
    /* %%EndUserCode zanPortPropertyMibInit_Body */

    /* Register the module's information with IDB+ engine */
    idbModuleRegister( moduleName, &xlateTable[0] );

    /* %%BeginUserCode zanPortPropertyMibInit_Epilog */
    zanPortPropertyMibNvmInit();
    nvmModuleRetrieve( moduleName );
    /* %%EndUserCode   zanPortPropertyMibInit_Epilog */

    return( rc );
    }

/******************************************************************************
*
* zanPortPropertyMibTerminate - Terminate zanPortPropertyMib and objects.
*
* This routine de-initializes the IDB module functions.
*
* RETURNS: OK or ERROR
*
* ERRNO: N/A
*/

STATUS zanPortPropertyMibTerminate
    (
    void * parm
    )
    {
    STATUS    rc;

    /* %%BeginUserCode zanPortPropertyMibTerminate_Prolog */
    /* %%EndUserCode   zanPortPropertyMibTerminate_Prolog */

    rc = OK;

    /* De-register the module's information with IDB+ engine */
    idbModuleDeRegister( moduleName );

    /* %%BeginUserCode zanPortPropertyMibTerminate_Epilog */
    /* %%EndUserCode   zanPortPropertyMibTerminate_Epilog */

    return( rc );
    }

/******************************************************************************
*
* zanPortPropertyMibScalarHandler - handles all scalar objects.
*
* This routine handles all scalar objects for this IDB+ Module.
*
* RETURNS: OK or ERROR
*
* ERRNO: N/A
*/

LOCAL STATUS zanPortPropertyMibScalarHandler
    (
    idbRequest_t request,
    idb_t * idb
    )
    {
    STATUS    rc;

    /* %%BeginUserCode zanPortPropertyMibScalarHandler_Prolog */
    /* %%EndUserCode   zanPortPropertyMibScalarhandler_Prolog */

    rc = OK;

    /* Validate the Scalar indexSubIdCount and instance value */
    if ( idbScalarValidate( request, idb ) == ERROR )
        return idbErrorRequestMap( request );

    switch( idb->localId )
    {
    default:
        rc = idbErrorNoSuchInstance();
        break;

    }

    /* %%BeginUserCode zanPortPropertyMibScalar_Epilog */
    /* %%EndUserCode   zanPortPropertyMibScalar_Epilog */

    return( rc );
    }

/******************************************************************************
*
* zanPropertyPortVlanEntryTableHandler - handles table objects.
*
* This routine handles all objects for this table.
*
* RETURNS: OK or ERROR
*
* ERRNO: N/A
*/

LOCAL STATUS zanPropertyPortVlanEntryTableHandler
    (
    idbRequest_t request,
    idb_t * idb
    )
    {
    STATUS    rc;

    /* %%BeginUserCode zanPropertyPortVlanEntryTableHandler_Prolog */
    /* %%EndUserCode   zanPropertyPortVlanEntryTablehandler_Prolog */

    rc = OK;

    switch( idb->localId )
    {
    default:
        rc = idbErrorNoSuchInstance();
        break;

    /* ================================================================= */
    case zanPropertyPortVlanType:    /* INTEGER, read-write */
        {
        /* %%BeginUserCode zanPropertyPortVlanType_Body */
	zanPortProperty_t *pProPort = NULL;

        switch ( request )
        {
        case IDB_GET_NEXT:
            /* Check to make sure the next object is valid. */
            rc = findNextPortVlanType(idb, &pProPort);
	     if (pProPort != NULL)
		 	ulongSet(idb, pProPort->Type);
	     else
		 	rc = ERROR;
	     break;

            /* FALLTHRU */
        case IDB_GET:
            if ( rc == OK )
            {
                rc = findPortVlanType(idb->pIndex[1], idb->pIndex[0], &pProPort);
		  if (pProPort != NULL)
		  	ulongSet(idb, pProPort->Type);
		  else
		  	rc = ERROR;
            }

            break;

        case IDB_VALIDATE:	     
            break;
            
        case IDB_SET_NVM:
	     rc = findPortVlanType(idb->pIndex[1], idb->pIndex[0], &pProPort);
	     if (pProPort == NULL)
	     {
	     		rc = addPortVlanType(idb->pIndex[1], idb->pIndex[0], &pProPort);
			if (pProPort != NULL)
				pProPort->Type = ulongGet(idb);
	     }
	     else
		 	pProPort->Type = ulongGet(idb);
            break;

        case IDB_COMMIT:
	     if ((idb->indexSubIdCount != 2) || (idb->pIndex[0] > 64) || (idb->pIndex[0] < 1) ||
			(idb->pIndex[1] > 4094) || (idb->pIndex[1] < 1))
			return ERROR;

	     rc = findPortVlanType(idb->pIndex[1], idb->pIndex[0], &pProPort);
	     if (pProPort != NULL)
	     {
		 	pProPort->Type = ulongGet(idb);
			portPropertyNvmObjUpdate("zanPropertyPortVlanType", idb->pIndex, idb->indexSubIdCount, idb->pValueBuf, idb->valueLen, TRUE);
	     }
	     
            break;
        }

        /* %%EndUserCode   zanPropertyPortVlanType_Body */
        }
        break;

    /* ================================================================= */
    case zanPropertyPortVlanRowStatus:    /* INTEGER, read-write */
        {
        /* %%BeginUserCode zanPropertyPortVlanRowStatus_Body */
	 zanPortProperty_t *pProPort = NULL;
	 
        switch ( request )
        {
        case IDB_GET_NEXT:
            /* Check to make sure the next object is valid. */
            rc = findNextPortVlanType(idb, &pProPort);
	     if (pProPort != NULL)
		 	ulongSet(idb, pProPort->Status);
	     else
		 	rc = ERROR;
	     break;

            /* FALLTHRU */
        case IDB_GET:
            if ( rc == OK )
            {
                rc = findPortVlanType(idb->pIndex[1], idb->pIndex[0], &pProPort);
		  if (pProPort != NULL)
		  	ulongSet(idb, pProPort->Status);
		  else
		  	rc = ERROR;
            }

            break;

        case IDB_VALIDATE:
            break;

        case IDB_SET_NVM:
	     rc = findPortVlanType(idb->pIndex[1], idb->pIndex[0], &pProPort);
	     if (pProPort == NULL)
	     {
	     		rc = addPortVlanType(idb->pIndex[1], idb->pIndex[0], &pProPort);
			if (pProPort != NULL)
				pProPort->Status = ulongGet(idb);
	     }
	     else
		 	pProPort->Status = ulongGet(idb);
            break;

        case IDB_COMMIT:
		if ((idb->indexSubIdCount != 2) || (idb->pIndex[0] > 64) || (idb->pIndex[0] < 1) ||
			(idb->pIndex[1] > 4094) || (idb->pIndex[1] < 1))
			return ERROR;
		
		switch (ulongGet(idb))		
		{
			case EzanPropertyPortVlanRowStatus_createAndGo:
				rc =  addPortVlanType(idb->pIndex[1], idb->pIndex[0], &pProPort);
				if (pProPort != NULL)
				{
					pProPort->Status = EzanPropertyPortVlanRowStatus_active;
					pProPort->Type = 15;
				}
				portPropertyNvmObjUpdate("zanPropertyPortVlanRowStatus", idb->pIndex, idb->indexSubIdCount, idb->pValueBuf, idb->valueLen, TRUE);
				break;

			case EzanPropertyPortVlanRowStatus_active:
				rc = findPortVlanType(idb->pIndex[1], idb->pIndex[0], &pProPort);
				if (pProPort != NULL)
				{
					pProPort->Status = EzanPropertyPortVlanRowStatus_active;
				}
				portPropertyNvmObjUpdate("zanPropertyPortVlanRowStatus", idb->pIndex, idb->indexSubIdCount, idb->pValueBuf, idb->valueLen, TRUE);
				break;

			case EzanPropertyPortVlanRowStatus_destroy:
				portPropertyNvmObjDelete("zanPropertyPortVlanRowStatus", idb->pIndex, idb->indexSubIdCount);
				portPropertyNvmObjDelete("zanPropertyPortVlanType", idb->pIndex, idb->indexSubIdCount);
				
				rc = delPortVlanType(idb->pIndex[1], idb->pIndex[0], &pProPort);
				if (pProPort != NULL)
				{
					free(pProPort);
					pProPort = NULL;
				}				
				break;
		}
			
            break;
        }

        /* %%EndUserCode   zanPropertyPortVlanRowStatus_Body */
        }
        break;

    }

    /* %%BeginUserCode zanPropertyPortVlanEntryTable_Epilog */
    /* %%EndUserCode   zanPropertyPortVlanEntryTable_Epilog */

    return( rc );
    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -