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

📄 testidbmib.c

📁 MIB的参考代码,有IDB_GET,IDB_SET,和IDB_NVM_SET的具体写法和说明
💻 C
📖 第 1 页 / 共 2 页
字号:
/* testIdbMib.c - IDB+ Module source for testIdbMib.mi2. */

/* Copyright 2005 Wind River, Inc. */
#include "copyright_wrs.h"

/*
modification history
--------------------
xxx,21Mar05,idb Created by IDBGEN. Ver 2.27
%%BeginUserCode testIdbMib_Modifications
%%EndUserCode   testIdbMib_Modifications
*/

/*
DESCRIPTION
This module defines the IDB+ structures and IDB+ Object handler routines to
access the IDB+ objects defined in testIdbMib.mi2.

INCLUDE FILES: testIdbMib.h
*/

/* Includes */
#include "tmsTypes.h"
#include "idbLib.h"
#include "testIdbMib.h"

/* %%BeginUserCode testIdbMib_IncludeFiles */
/* %%EndUserCode   testIdbMib_IncludeFiles */

/* Defines */
/* %%BeginUserCode testIdbMib_Defines */
/* %%EndUserCode   testIdbMib_Defines */

/* Globals */
/* %%BeginUserCode testIdbMib_Globals */
/* %%EndUserCode   testIdbMib_Globals */

/* Locals */
LOCAL char * moduleName = "testIdbMib";
/* %%BeginUserCode testIdbMib_Locals */
/* %%EndUserCode   testIdbMib_Locals */

/* Prototypes */
LOCAL STATUS testIdbMibScalarHandler ( idbRequest_t request, idb_t * idb );
LOCAL STATUS testIdbMibPortEntryTableHandler ( idbRequest_t request, idb_t * idb );
LOCAL STATUS radiusTemplateEntryTableHandler ( idbRequest_t request, idb_t * idb );

/* %%BeginUserCode testIdbMib_Prototypes */
/* %%EndUserCode   testIdbMib_Prototypes */


/****************************************************************************
* IDB+ Module Object Descriptors
*/

LOCAL idbObjDesc_t systemContact_objDesc[] = {
  { systemContact, 1, 32, /* localId=0  1.3.6.1.4.1.10293.1.1.9.20.1.1 */
    { 0, 0 }, IDB_OCTET_STRING, (IDB_READ|IDB_WRITE),
    (IDB_VALID|IDB_ISDISPLAY), testIdbMibScalarHandler,
    (char *)0, "testIdbMib:systemContact" },
  { 0 }
};

LOCAL idbObjDesc_t consoleBaudrate_objDesc[] = {
  { consoleBaudrate, 2, 4, /* localId=1  1.3.6.1.4.1.10293.1.1.9.20.1.2 */
    { 9600, 115200 }, IDB_INTEGER, (IDB_READ|IDB_WRITE),
    (IDB_VALID), testIdbMibScalarHandler,
    (char *)0, "testIdbMib:consoleBaudrate" },
  { 0 }
};

LOCAL idbObjDesc_t testIdbMibPortEntry_objDesc[] = {
  { portNumber, 1, 4, /* localId=2  1.3.6.1.4.1.10293.1.1.9.20.2.1.1.1 */
    { 1, 64 }, IDB_INTEGER, IDB_NOT_ACCESSIBLE,
    (IDB_VALID|IDB_INDEX), testIdbMibPortEntryTableHandler,
    (char *)0, "testIdbMib:portNumber" },
  { portSpeed, 2, 4, /* localId=3  1.3.6.1.4.1.10293.1.1.9.20.2.1.1.2 */
    { 0, 3 }, IDB_INTEGER, (IDB_READ|IDB_WRITE),
    (IDB_VALID), testIdbMibPortEntryTableHandler,
    (char *)0, "testIdbMib:portSpeed" },
  { portIpAddr, 3, 4, /* localId=4  1.3.6.1.4.1.10293.1.1.9.20.2.1.1.3 */
    { 0, 0 }, IDB_Unsigned32, (IDB_READ|IDB_WRITE),
    (IDB_VALID), testIdbMibPortEntryTableHandler,
    (char *)0, "testIdbMib:portIpAddr" },
  { 0 }
};

LOCAL idbObjDesc_t radiusTemplateEntry_objDesc[] = {
  { radiusIndex, 1, 4, /* localId=5  1.3.6.1.4.1.10293.1.1.9.20.3.1.1.1 */
    { 0, 0 }, IDB_Unsigned32, IDB_NOT_ACCESSIBLE,
    (IDB_VALID|IDB_INDEX), radiusTemplateEntryTableHandler,
    (char *)0, "testIdbMib:radiusIndex" },
  { authPort, 2, 4, /* localId=6  1.3.6.1.4.1.10293.1.1.9.20.3.1.1.2 */
    { 1, 65536 }, IDB_INTEGER, (IDB_READ|IDB_WRITE),
    (IDB_VALID), radiusTemplateEntryTableHandler,
    (char *)0, "testIdbMib:authPort" },
  { secret, 3, 64, /* localId=7  1.3.6.1.4.1.10293.1.1.9.20.3.1.1.3 */
    { 0, 0 }, IDB_OCTET_STRING, (IDB_READ|IDB_WRITE),
    (IDB_VALID|IDB_ISDISPLAY), radiusTemplateEntryTableHandler,
    (char *)0, "testIdbMib:secret" },
  { staticClientRowStatus, 4, 4, /* localId=8  1.3.6.1.4.1.10293.1.1.9.20.3.1.1.4 */
    { 1, 6 }, IDB_RowStatus, (IDB_READ|IDB_CREATE),
    (IDB_VALID), radiusTemplateEntryTableHandler,
    (char *)0, "testIdbMib:staticClientRowStatus" },
  { 0 }
};

/*****************************************************************************
* IDB+ Module OID Table
*
* The OID list below (e.g.,{1,3,6,1, ...}) is the OID prefix minus the
* last sub-identifier.  The last sub-identifier is found in the
* object descriptor idbObjDesc_t structure.
*/

LOCAL idbOidTable_t oidTable[] = {
  /*   0: Scalar Object -- systemContact */
  { IDB_SNMP_STRUCT, {1,3,6,1,4,1,10293,1,1,9,20,1}, 13,   /*lint !e785 */
    0, 1, { 0 },
    systemContact_objDesc },

  /*   1: Scalar Object -- consoleBaudrate */
  { IDB_SNMP_STRUCT, {1,3,6,1,4,1,10293,1,1,9,20,1}, 13,   /*lint !e785 */
    0, 1, { 0 },
    consoleBaudrate_objDesc },

  /*   2: Table Object -- testIdbMibPortEntry */
  { IDB_SNMP_STRUCT, {1,3,6,1,4,1,10293,1,1,9,20,2,1,1}, 15,   /*lint !e785 */
    1, 1, { "testIdbMib:portNumber" }, /*lint !e785 */
    testIdbMibPortEntry_objDesc },

  /*   3: Table Object -- radiusTemplateEntry */
  { IDB_SNMP_STRUCT, {1,3,6,1,4,1,10293,1,1,9,20,3,1,1}, 15,   /*lint !e785 */
    1, 1, { "testIdbMib:radiusIndex" }, /*lint !e785 */
    radiusTemplateEntry_objDesc },

  { IDB_TERMINATOR }
};

/*****************************************************************************
* IDB+ Module Translate Table
*/

LOCAL idbXlateTable_t xlateTable[] = {
    { &oidTable[  0], &systemContact_objDesc[0] },
    { &oidTable[  1], &consoleBaudrate_objDesc[0] },
    { &oidTable[  2], &testIdbMibPortEntry_objDesc[0] },
    { &oidTable[  2], &testIdbMibPortEntry_objDesc[1] },
    { &oidTable[  2], &testIdbMibPortEntry_objDesc[2] },
    { &oidTable[  3], &radiusTemplateEntry_objDesc[0] },
    { &oidTable[  3], &radiusTemplateEntry_objDesc[1] },
    { &oidTable[  3], &radiusTemplateEntry_objDesc[2] },
    { &oidTable[  3], &radiusTemplateEntry_objDesc[3] },

    { 0 }
};

/******************************************************************************
* User Local Functions.
*/

/* %%BeginUserCode testIdbMib_UserFunctions */
/* %%EndUserCode   testIdbMib_UserFunctions */


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

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

    /* %%BeginUserCode testIdbMibInit_Prolog */
    /* %%EndUserCode   testIdbMibInit_Prolog */

    rc = OK;

    /* %%BeginUserCode testIdbMibInit_Body */
    /* %%EndUserCode testIdbMibInit_Body */

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

    /* %%BeginUserCode testIdbMibInit_Epilog */
    /* %%EndUserCode   testIdbMibInit_Epilog */

    return( rc );
    }

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

STATUS testIdbMibTerminate
    (
    void * parm
    )
    {
    STATUS    rc;

    /* %%BeginUserCode testIdbMibTerminate_Prolog */
    /* %%EndUserCode   testIdbMibTerminate_Prolog */

    rc = OK;

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

    /* %%BeginUserCode testIdbMibTerminate_Epilog */
    /* %%EndUserCode   testIdbMibTerminate_Epilog */

    return( rc );
    }

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

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

    /* %%BeginUserCode testIdbMibScalarHandler_Prolog */
    /* %%EndUserCode   testIdbMibScalarhandler_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;

    /* ================================================================= */
    case systemContact:    /* OCTET_STRING, read-write */
        {
        /* %%BeginUserCode systemContact_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 )
            {
                idb->valueLen = 32;
            }

            break;

        case IDB_VALIDATE:
            if ( idb->valueLen > 32 )
                rc = idbErrorTooBig();
            break;

        case IDB_SET_NVM:
            break;

        case IDB_COMMIT:
			systemContact="asdfasdf";
            break;
        }

        /* %%EndUserCode   systemContact_Body */
        }

⌨️ 快捷键说明

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