首页 > 数据库 > mysql教程 > 用NET-SNMP软件包开发简单客户端代理(6)

用NET-SNMP软件包开发简单客户端代理(6)

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
发布: 2016-06-07 15:30:58
原创
1154 人浏览过

6.3.4 ExampleTable_access.h /*ExampleTable_access.h*/ /* * 注:此文件最初由 mib2c 使用 * 自动生成:mib2c.access_functions.conf,v 1.9 2004/10/14 12:57:33 dts12 Exp $ */ #ifndef ExamplesTABLE_ACCESS_H #define ExamplesTABLE_

6.3.4       ExampleTable_access.h

/*ExampleTable_access.h*/

/*

 * 注意:此文件最初由 mib2c 使用

自动生成

 *        : mib2c.access_functions.conf,v 1.9 2004/10/14 12:57:33 dts12 Exp $

 */

#ifndef ExamplesTABLE_ACCESS_H

#define ExamplesTABLE_ACCESS_H

 

/**用户定义的数据访问 表ExampleTable中数据的函数*/

/**行级访问器*/

Netsnmp_First_Data_Point  ExampleTable_get_first_data_point;

Netsnmp_Next_Data_Point   ExampleTable_get_next_data_point;

int ExampleTable_commit_row(void **my_data_context, int new_or_del);

无效 * 示例Table_create_data_context(netsnmp_variable_list *index_data, int 栏);

 

/**列访问器*/

      long *get_MachineNumber(void *data_context, size_t *ret_len);

      char *get_MachineStatus(void *data_context, size_t *ret_len);

      u_long *get_CheckTime(void *data_context, size_t *ret_len);

      long *get_MonSet(void *data_context, size_t *ret_len);

      int set_MonSet(void *data_context, long *val, size_t val_len);

 

#endif /* ExamplesTABLE_ACCESS_H */

 

6.3.5       ExampleTable_checkfns.c

/*ExampleTable_checkfns.c*/

/*

 * 注意:此文件最初 由 mib2c 使用

自动生成

 *        : mib2c.check_values.conf,v 1.8 2004/01/12 00:43:45 rstory Exp $

 */

 

/************************************************ **************************

 *                       注意   注意   注意

 *   此文件是自动生成的,不应编辑 用手。

 *   修改ExampleTable_checkfns_local.[ch] 文件 这样你

 *   可以重新生成这个,因为 mib2c 的改进是 已制作。

 ******************************************** ******************************/

 

/* 标准 标头 */

#include

#include

#include “ExampleTable_checkfns.h”

#include “ExampleTable_checkfns_local.h”

#include “ExampleTable_enums.h”

 

/**决定是否 MonSet mib 节点的传入值是合法的。

 *  @param 类型    传入数据类型。

 *  @param val     要检查的值。

 *  @param val_len val 中存储的数据长度(以字节为单位)。

 *  如果传入值合法则返回 0,否则返回 SNMP 错误代码。

 */

    int

    check_MonSet(int 类型, long *val, size_t val_len,

             long *old_val, size_t old_val_len) {

 

    int ret;

 

    /**检查一下我们是否 被合法地称为*/

      if (!val)

        返回 SNMP_ERR_GENERR;

 

    /**检查传入类型 为了正确性*/

      if(类型!= ASN_INTEGER)

        返回 SNMP_ERR_WRONGTYPE;

 

       ret = SNMP_ERR_NOERROR;

 

 

    /**看起来不错,请致电 相同功能的本地版本。*/

      返回 check_MonSet_local(type, val, val_len, old_val, old_val_len);

    }

6.3.6       ExampleTable_checkfns.h

/*ExampleTable_checkfns.h*/

/*

 * 注意:此文件最初 由 mib2c 使用

自动生成

 *        :mib2c.iterate.conf,v 5.6 2003/02/20 00:52:07 硬核Exp $

 */

 

/******************************************************** ******************

 *   此文件是自动生成的,不应编辑 用手。

 *   修改ExampleTable_checkfns_local.[ch] 文件 欧洲。

 *   (以便您可以将其重新生成为 mib2c 已做出改进)

 ******************************************** ***********************************/

#ifndef EXAMPLETABLE_CHECKFNS_H

#define EXAMPLETABLE_CHECKFNS_H

 

/**确保我们加载 您可以修改的功能*/

config_require(ExampleTable_checkfns_local)

 

/* 这些 函数旨在检查

的传入值

中的列 有关

合法性的示例表

数据类型和 值。

 */

 

      int check_MonSet(int 类型,long *val,size_t val_len,long *old_val,size_t old_val_len);

 

#endif /* EXAMPLETABLE_CHECKFNS_H */

 

6.3.7       示例Table_checkfns_local.c

/*ExampleTable_checkfns_local.c*/

/*

 * 注意:此文件最初 由 mib2c 使用

自动生成

 *        : mib2c.check_values_local.conf,v 5.2 2004/05/04 23:34:56 硬核Exp $

 */

 

/* 标准 标头 */

#include

#include

#include “ExampleTable_checkfns.h”

#include “ExampleTable_enums.h”

 

/** 决定是否 MonSet mib 节点的传入值是合法的,来自本地实现 具体观点。

 *  @param 类型    传入数据类型。

 *  @param val     要检查的值。

 *  @param val_len val 中存储的数据长度(以字节为单位)。

 *  如果传入值合法则返回 0,否则返回 SNMP 错误代码。

 */

    int

    check_MonSet_local(int 类型,长 *val,size_t val_len,长 *old_val,size_t old_val_len) {

 

    /**XXX:您可能想检查一下 新价值的各个方面

       不是 由父函数的自动检查覆盖。*/

 

    /**XXX:你想要 检查请求的更改是否来自

        旧值到新值是合法的(即转换

        来自 一种价值对另一种价值来说是合法的*/

     

    /**如果一切看起来都正常的话 返回 SNMP_ERR_NOERROR*/

      返回 SNMP_ERR_NOERROR;

    }

6.3.8       ExampleTable_checkfns_local.h

/*ExampleTable_checkfns_local.h*/

/*

 * 注意:此文件最初 由 mib2c 使用

自动生成

 *        : : mib2c.check_values_local.conf,v 5.2 2004/05/04 23:34:56 硬核Exp $

 *

 */

#ifndef EXAMPLETABLE_CHECKFNS_H

#define EXAMPLETABLE_CHECKFNS_H

 

/* 这些 函数旨在检查

的传入值

中的列 有关

合法性的示例表

数据类型和 根据当地惯例值。  您应该修改

他们作为 适当的。  他们将被称为 来自父级 check_value

功能 使用 mib2c 和父函数自动生成

不应该 已修改。

 */

 

    int check_MonSet_local(int 类型,long *val,size_t val_len,long *old_val,size_t old_val_len);

 

#endif /* EXAMPLETABLE_CHECKFNS_H */

 

6.3.9       ExampleTable_columns.h

/*ExampleTable_columns.h*/

/*

 * 注意:此文件最初是自动生成的 通过 mib2c 使用

 *  :mib2c.column_defines.conf,v 5.1 2002/05/08 05:42:47 Hardaker Exp $

 */

#ifndef EXAMPLETABLE_COLUMNS_H

#define EXAMPLETABLE_COLUMNS_H

 

/* 列号 表 ExampleTable 的定义 */

       #define COLUMN_MACHINENUMBER        1

       #define COLUMN_MACHINESTATUS          2

       #define COLUMN_CHECKTIME           3

       #define COLUMN_MONSET         4

#endif /* EXAMPLETABLE_COLUMNS_H */

6.3.10   ExampleTable_enums.h

/*ExampleTable_enums.h*/

/*

 * 注意:此文件最初 由 mib2c 使用

自动生成

 *  :mib2c.column_enums.conf,v 5.2 2003/02/22 04:09:25 Hardaker Exp $

 */

#ifndef EXAMPLETABLE_ENUMS_H

#define EXAMPLETABLE_ENUMS_H

 

#endif /* EXAMPLETABLE_ENUMS_H */

6.4 自定义mib文件MyMib.txt

MyMIB 定义::=开始

       进口     

              企业、对象类型、Integer32、TimeTicks

                     来自 SNMPv2-SMI

       文本约定,  来自 SNMPv2-TC 的显示字符串;

       foxmail 对象标识符::={企业 310}

       第二个柜台 对象类型

              语法 整数32

              访问 读写

              状态 必填

                描述“这是一个 从 1970.1.1.0:0 至今的分钟计数器"

              ::={foxmail 1}

 

       周时间对象类型

              语法 TimeTicks

              访问只读

              状态必填

                描述“记录今天的时间和日期排序 周”

              ::={foxmail 2}

 

       示例表        对象类型

              语法 示例条目的序列

              最大访问权限  无法访问

              状态 当前

              描述

            “界面条目列表。  条目数为

            由ExampleNumber的值给出。”

                  ::= { Foxmail 3 }

 

       示例条目 对象类型

                  语法      示例条目

                  最大访问权限  不可访问

                  状态      当前

                  描述

            “包含适用于

的管理信息的条目

            特定界面。”

                  INDEX   { UserIndex }

                  ::= { 示例表 1 }

 

       示例条目 ::=

                  序列 {

                             用户索引           界面索引,

                            用户状态           DisplayString,

                             检查时间               时间滴答,

                            周一                  整数32

                            }     

 

  InterfaceIndex ::= 文本约定

    显示提示“d”

    状态       当前

    描述

            “每个接口都有一个大于零的唯一值或

            托管系统中的接口子层。  它是

            建议从

开始连续分配值

            从 1.  每个接口的值 子层必须保留

            至少从实体的一次重新初始化开始为常数

            网络管理系统下次重新初始化。”

    语法       Integer32 (1..2147483647)

 

 

       用户索引 对象类型

                  语法      界面索引

              最大访问权限  只读

              状态      当前

                  描述

            “每个接口都有一个大于零的唯一值。 

            建议连续赋值

            从 1 开始。  值 对于每个界面子层

            至少在一次重新初始化

后必须保持不变

            实体的网管系统要重新

            初始化。”

                ::= { 示例条目 1 }

 

       用户状态 对象类型

                  语法      DisplayString

                  最大访问权限  只读

                  状态      当前

                  描述

            “机器状态。”

                  ::= { 示例条目 2 }

 

       检查时间 对象类型

                  语法      TimeTicks

                  最大访问权限  只读

                  状态      当前

                  描述

            “机器状态检查时间。”

                  ::= { 示例条目 3 }

 

       周一 对象类型

              语法 整数32

              最大访问权限 读写

              状态 当前

              描述

             “使用 set 函数的示例。”

              ::={ 示例条目 4}

END

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
docker中部署snmp环境
来自于 1970-01-01 08:00:00
0
0
0
javascript - net::ERR_NAME_NOT_RESOLVED
来自于 1970-01-01 08:00:00
0
0
0
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板