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

📄 dot1xmib.c

📁 dot1x认证源码,包括dot1x数据包的收发,认证的配置,MIB的设计等
💻 C
📖 第 1 页 / 共 2 页
字号:

    /* ================================================================= */
    /*
    * Edot1xReAuthEnable_enable 1
    * Edot1xReAuthEnable_disable 2
    */
    case dot1xReAuthEnable:    /* INTEGER, read-write */
        {
        /* %%BeginUserCode dot1xReAuthEnable_Body */

        switch ( request )
        {
        case IDB_GET_NEXT:
            /* Check to make sure the next object is valid. */
            rc = idbNextScalarIndex(idb);

            /* FALLTHRU */
        case IDB_GET:
            if ( rc == OK )
            {
            	  if (dot1xReAuthEn == TRUE)
                	ulongSet(idb, Edot1xReAuthEnable_enable);
		  else
		  	ulongSet(idb, Edot1xReAuthEnable_disable);
            }

            break;

        case IDB_VALIDATE:
            if ( (ulongGet(idb) < 1) || (ulongGet(idb) > 2) )
                rc = idbErrorInvalidRange();
            else if ( idb->valueLen > 4 )
                rc = idbErrorInvalidLength();
            break;


        case IDB_SET_NVM:
	     if (ulongGet(idb) == Edot1xReAuthEnable_enable)
	     {
	     	dot1xReAuthEn = TRUE;		
	     }
	     else
	     {
		 dot1xReAuthEn = FALSE;
	     }
            break;

        case IDB_COMMIT:
	     if (ulongGet(idb) == Edot1xReAuthEnable_enable)
	     {
	     	dot1xReAuthEn = TRUE;
		Dot1xNvmObjDelete("dot1xReAuthEnable", idb->pIndex, idb->indexSubIdCount);
	     }
	     else
	     {
		 dot1xReAuthEn = FALSE;
		 Dot1xNvmObjUpdate("dot1xReAuthEnable", idb->pIndex, idb->indexSubIdCount, idb->pValueBuf, idb->valueLen, TRUE);
	     }
            break;
        }

        /* %%EndUserCode   dot1xReAuthEnable_Body */
        }
        break;

    /* ================================================================= */
    case dot1xReAuthPeriod:    /* INTEGER, read-write */
        {
        /* %%BeginUserCode dot1xReAuthPeriod_Body */

        switch ( request )
        {
        case IDB_GET_NEXT:
            /* Check to make sure the next object is valid. */
            rc = idbNextScalarIndex(idb);

            /* FALLTHRU */
        case IDB_GET:
            if ( rc == OK )
            {
                ulongSet(idb, dot1xReAuthInterVal);
            }

            break;

        case IDB_VALIDATE:
            if ( (ulongGet(idb) < 10) || (ulongGet(idb) > 65535) )
                rc = idbErrorInvalidRange();
            else if ( idb->valueLen > 4 )
                rc = idbErrorInvalidLength();
            break;


        case IDB_SET_NVM:
	     dot1xReAuthInterVal = ulongGet(idb);
            break;

        case IDB_COMMIT:
	     dot1xReAuthInterVal = ulongGet(idb);
	     if (30 == ulongGet(idb))
		 	Dot1xNvmObjDelete("dot1xReAuthPeriod", idb->pIndex, idb->indexSubIdCount);
	     else
		 	Dot1xNvmObjUpdate("dot1xReAuthPeriod", idb->pIndex, idb->indexSubIdCount, idb->pValueBuf, idb->valueLen, TRUE);
            break;
        }

        /* %%EndUserCode   dot1xReAuthPeriod_Body */
        }
        break;

    /* ================================================================= */
    case dot1xReAuthRetryTimes:    /* INTEGER, read-write */
        {
        /* %%BeginUserCode dot1xReAuthRetryTimes_Body */

        switch ( request )
        {
        case IDB_GET_NEXT:
            /* Check to make sure the next object is valid. */
            rc = idbNextScalarIndex(idb);

            /* FALLTHRU */
        case IDB_GET:
            if ( rc == OK )
            {
                ulongSet(idb, dot1xMAXReAuthTimes);
            }

            break;

        case IDB_VALIDATE:
            if ( (ulongGet(idb) < 1) || (ulongGet(idb) > 10) )
                rc = idbErrorInvalidRange();
            else if ( idb->valueLen > 4 )
                rc = idbErrorInvalidLength();
            break;


        case IDB_SET_NVM:
            dot1xMAXReAuthTimes = ulongGet(idb);
            break;

        case IDB_COMMIT:
	     dot1xMAXReAuthTimes = ulongGet(idb);
	     if (4 == ulongGet(idb))
		 	Dot1xNvmObjDelete("dot1xReAuthRetryTimes", idb->pIndex, idb->indexSubIdCount);
	     else
		 	Dot1xNvmObjUpdate("dot1xReAuthRetryTimes", idb->pIndex, idb->indexSubIdCount, idb->pValueBuf, idb->valueLen, TRUE);
            break;
        }

        /* %%EndUserCode   dot1xReAuthRetryTimes_Body */
        }
        break;

    /* ================================================================= */
    case dot1xReAuthSuppTimeOut:    /* INTEGER, read-write */
        {
        /* %%BeginUserCode dot1xReAuthSuppTimeOut_Body */

        switch ( request )
        {
        case IDB_GET_NEXT:
            /* Check to make sure the next object is valid. */
            rc = idbNextScalarIndex(idb);

            /* FALLTHRU */
        case IDB_GET:
            if ( rc == OK )
            {
                ulongSet(idb, dot1xReAuthTimeout);
            }

            break;

        case IDB_VALIDATE:
            if ( (ulongGet(idb) < 1) || (ulongGet(idb) > 65535) )
                rc = idbErrorInvalidRange();
            else if ( idb->valueLen > 4 )
                rc = idbErrorInvalidLength();
            break;


        case IDB_SET_NVM:
            dot1xReAuthTimeout = ulongGet(idb);
            break;

        case IDB_COMMIT:
	     dot1xReAuthTimeout = ulongGet(idb);
	     if (10 == ulongGet(idb))
		 	Dot1xNvmObjDelete("dot1xReAuthSuppTimeOut", idb->pIndex, idb->indexSubIdCount);
	     else
		 	Dot1xNvmObjUpdate("dot1xReAuthSuppTimeOut", idb->pIndex, idb->indexSubIdCount, idb->pValueBuf, idb->valueLen, TRUE);
            break;
            break;
        }

        /* %%EndUserCode   dot1xReAuthSuppTimeOut_Body */
        }
        break;

    /* ================================================================= */
    case dot1xSuppTimeOut:    /* INTEGER, read-write */
        {
        /* %%BeginUserCode dot1xSuppTimeOut_Body */

        switch ( request )
        {
        case IDB_GET_NEXT:
            /* Check to make sure the next object is valid. */
            rc = idbNextScalarIndex(idb);

            /* FALLTHRU */
        case IDB_GET:
            if ( rc == OK )
            {
                ulongSet(idb, dot1xWaitTimerInterVal);
            }

            break;

        case IDB_VALIDATE:
            if ( (ulongGet(idb) < 1) || (ulongGet(idb) > 65535) )
                rc = idbErrorInvalidRange();
            else if ( idb->valueLen > 4 )
                rc = idbErrorInvalidLength();
            break;


        case IDB_SET_NVM:
            dot1xWaitTimerInterVal = ulongGet(idb);
            break;

        case IDB_COMMIT:
	     dot1xWaitTimerInterVal = ulongGet(idb);
	     if (30 == ulongGet(idb))
		 	Dot1xNvmObjDelete("dot1xSuppTimeOut", idb->pIndex, idb->indexSubIdCount);
	     else
		 	Dot1xNvmObjUpdate("dot1xSuppTimeOut", idb->pIndex, idb->indexSubIdCount, idb->pValueBuf, idb->valueLen, TRUE);
            break;
        }

        /* %%EndUserCode   dot1xSuppTimeOut_Body */
        }
        break;

    /* ================================================================= */
    case dot1xTxRetryTimes:    /* INTEGER, read-write */
        {
        /* %%BeginUserCode dot1xTxRetryTimes_Body */

        switch ( request )
        {
        case IDB_GET_NEXT:
            /* Check to make sure the next object is valid. */
            rc = idbNextScalarIndex(idb);

            /* FALLTHRU */
        case IDB_GET:
            if ( rc == OK )
            {
                ulongSet(idb, dot1xMAXReTryTimes);
            }

            break;

        case IDB_VALIDATE:
            if ( (ulongGet(idb) < 1) || (ulongGet(idb) > 10) )
                rc = idbErrorInvalidRange();
            else if ( idb->valueLen > 4 )
                rc = idbErrorInvalidLength();
            break;


        case IDB_SET_NVM:
            dot1xMAXReTryTimes = ulongGet(idb);
            break;

        case IDB_COMMIT:
	     dot1xMAXReTryTimes = ulongGet(idb);
	     if (3 == ulongGet(idb))
		 	Dot1xNvmObjDelete("dot1xTxRetryTimes", idb->pIndex, idb->indexSubIdCount);
	     else
		 	Dot1xNvmObjUpdate("dot1xTxRetryTimes", idb->pIndex, idb->indexSubIdCount, idb->pValueBuf, idb->valueLen, TRUE);
            break;
        }

        /* %%EndUserCode   dot1xTxRetryTimes_Body */
        }
        break;

    /* ================================================================= */
    case dot1xTxHoldTimes:    /* INTEGER, read-write */
        {
        /* %%BeginUserCode dot1xTxHoldTimes_Body */

        switch ( request )
        {
        case IDB_GET_NEXT:
            /* Check to make sure the next object is valid. */
            rc = idbNextScalarIndex(idb);

            /* FALLTHRU */
        case IDB_GET:
            if ( rc == OK )
            {
                ulongSet(idb, FailedHoldTime);
            }

            break;

        case IDB_VALIDATE:
            if ( (ulongGet(idb) < 0) || (ulongGet(idb) > 30) )
                rc = idbErrorInvalidRange();
            else if ( idb->valueLen > 4 )
                rc = idbErrorInvalidLength();
            break;


        case IDB_SET_NVM:
            FailedHoldTime = ulongGet(idb);
            break;

        case IDB_COMMIT:
	     FailedHoldTime = ulongGet(idb);
	     if (10 == ulongGet(idb))
		 	Dot1xNvmObjDelete("dot1xTxHoldTimes", idb->pIndex, idb->indexSubIdCount);
	     else
		 	Dot1xNvmObjUpdate("dot1xTxHoldTimes", idb->pIndex, idb->indexSubIdCount, idb->pValueBuf, idb->valueLen, TRUE);
            break;
        }

        /* %%EndUserCode   dot1xTxHoldTimes_Body */
        }
        break;

    /* ================================================================= */
    /*
    * Edot1xReAuthType_half 1
    * Edot1xReAuthType_full 2
    */
    case dot1xReAuthType:    /* INTEGER, read-write */
        {
        /* %%BeginUserCode dot1xReAuthType_Body */

        switch ( request )
        {
        case IDB_GET_NEXT:
            /* Check to make sure the next object is valid. */
            rc = idbNextScalarIndex(idb);

            /* FALLTHRU */
        case IDB_GET:
            if ( rc == OK )
            {
                if (dot1xReAuthStyle == HALF_RE_AUTH)
			ulongSet(idb, Edot1xReAuthType_half);
		  else
		  	ulongSet(idb, Edot1xReAuthType_full);
            }

            break;

        case IDB_VALIDATE:
            if ( (ulongGet(idb) < 1) || (ulongGet(idb) > 2) )
                rc = idbErrorInvalidRange();
            else if ( idb->valueLen > 4 )
                rc = idbErrorInvalidLength();
            break;


        case IDB_SET_NVM:
            if (ulongGet(idb) == Edot1xReAuthType_half)
		 	dot1xReAuthStyle = HALF_RE_AUTH;
	     else
		 	dot1xReAuthStyle = FULL_RE_AUTH;
	     
            break;

        case IDB_COMMIT:
	     if (ulongGet(idb) == Edot1xReAuthType_half)
            {
		 	dot1xReAuthStyle = HALF_RE_AUTH;
			Dot1xNvmObjDelete("dot1xReAuthType", idb->pIndex, idb->indexSubIdCount);
	     }
	     else
	     {
		 	dot1xReAuthStyle = FULL_RE_AUTH;
			Dot1xNvmObjUpdate("dot1xReAuthType", idb->pIndex, idb->indexSubIdCount, idb->pValueBuf, idb->valueLen, TRUE);
	     }
	     
            break;
        }

        /* %%EndUserCode   dot1xReAuthType_Body */
        }
        break;

    }

    /* %%BeginUserCode dot1xMibScalar_Epilog */
    /* %%EndUserCode   dot1xMibScalar_Epilog */

    return( rc );
    }

#if 1
/*******************************************************
* If needed, then remove '#if 0' and '#endif' from
* here and then move this function so that it is
* between the '%%BeginUserCode dot1xMib_UserFunctions'
* '%%EndUserCode dot1xMib_UserFunctions' keywords.
*/
/******************************************************************************
*
* dot1xMibNvmInit - Routine to Init the NVM objects.
*
* This routine will create the NVM objects and inform NVM.
*
* RETURNS: OK or ERROR
*
* ERRNO: N/A
*/

LOCAL STATUS dot1xMibNvmInit
    (
    )
    {
    STATUS     rc;
    nvmMod_t * pMod;

    /* %%BeginUserCode dot1xMibNvmInit_Prolog */
    /* %%EndUserCode   dot1xMibNvmInit_Prolog */

    rc      = OK;
    pMod    = NULL;

    /* **************** Durable objects **************** */
    rc = nvmModuleCreate( moduleName, NVM_DURABLE, &pMod );
    if ( rc == ERROR )
        return rc;

    /* %%BeginUserCode dot1xAuthProtocol */
    /* %%EndUserCode   dot1xAuthProtocol */

    /* %%BeginUserCode dot1xReAuthEnable */
    /* %%EndUserCode   dot1xReAuthEnable */

    /* %%BeginUserCode dot1xReAuthPeriod */
    /* %%EndUserCode   dot1xReAuthPeriod */

    /* %%BeginUserCode dot1xReAuthRetryTimes */
    /* %%EndUserCode   dot1xReAuthRetryTimes */

    /* %%BeginUserCode dot1xReAuthSuppTimeOut */
    /* %%EndUserCode   dot1xReAuthSuppTimeOut */

    /* %%BeginUserCode dot1xSuppTimeOut */
    /* %%EndUserCode   dot1xSuppTimeOut */

    /* %%BeginUserCode dot1xTxRetryTimes */
    /* %%EndUserCode   dot1xTxRetryTimes */

    /* %%BeginUserCode dot1xTxHoldTimes */
    /* %%EndUserCode   dot1xTxHoldTimes */

    /* %%BeginUserCode dot1xReAuthType */
    /* %%EndUserCode   dot1xReAuthType */

    /* %%BeginUserCode dot1xMibNvmInit_Epilog */
    /* %%EndUserCode   dot1xMibNvmInit_Epilog */

    return( rc );
    }

#endif

⌨️ 快捷键说明

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