NETSNMP服务端添加自定义节点.doc

上传人:牧羊曲112 文档编号:4197126 上传时间:2023-04-09 格式:DOC 页数:11 大小:171.50KB
返回 下载 相关 举报
NETSNMP服务端添加自定义节点.doc_第1页
第1页 / 共11页
NETSNMP服务端添加自定义节点.doc_第2页
第2页 / 共11页
NETSNMP服务端添加自定义节点.doc_第3页
第3页 / 共11页
NETSNMP服务端添加自定义节点.doc_第4页
第4页 / 共11页
NETSNMP服务端添加自定义节点.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《NETSNMP服务端添加自定义节点.doc》由会员分享,可在线阅读,更多相关《NETSNMP服务端添加自定义节点.doc(11页珍藏版)》请在三一办公上搜索。

1、 NET-SNMP服务端添加自定义节点编译生成.c和.h文件后,只是一个mib节点文件模板。1 代码修改:blue.h/* * Note: this file originally auto-generated by mib2c using * : mib2c.old-api.conf 14476 2006-04-18 17:36:51Z hardaker $ */#ifndef BLUE_H#define BLUE_H/* * function declarations */void init_blue(void);FindVarMethod var_blue;WriteMethod wri

2、te_bluenum;#endif /* BLUE_H */我们会发现生成的C文件,其实只是一个模版。其中功能实现的地方,以及某些关键地方都留了空,并且有较为详细的英文注释。只需要修改两处即可通过编译,其余部分可根据情况决定是否修改,以及如何修改。blue.c/* * Note: this file originally auto-generated by mib2c using * : mib2c.old-api.conf 14476 2006-04-18 17:36:51Z hardaker $ */#include #include #include #include blue.h/*

3、* blue_variables_oid: * this is the top level oid that we want to register under. This * is essentially a prefix, with the suffix appearing in the * variable below. */oid blue_variables_oid = 1, 3, 6, 1, 4, 1, 1, 1 ;/* * variable4 blue_variables: * this variable defines function callbacks and type r

4、eturn information * for the blue mib section */struct variable7 blue_variables = /* * magic number , variable type , ro/rw , callback fn , L, oidsuffix */#define BLUENUM1 BLUENUM, ASN_INTEGER, RWRITE, var_blue, 1, 4,;/* * (L = length of the oidsuffix) */* Initializes the blue module */voidinit_blue(

5、void) DEBUGMSGTL(blue, Initializingn); /* * register ourselves with the agent to handle our mib tree */ REGISTER_MIB(blue, blue_variables, variable4, blue_variables_oid); /* * place any other initialization junk you need here */* * var_blue(): * This function is called every time the agent gets a re

6、quest for * a scalar variable that might be found within your mib section * registered above. It is up to you to do the right thing and * return the correct value. * You should also correct the value of var_len if necessary. * * Please see the documentation for more information about writing * modul

7、e extensions, and check out the examples in the examples * and mibII directories. */unsigned char *var_blue(struct variable *vp, oid * name, size_t *length, int exact, size_t *var_len, WriteMethod * write_method) /* * variables we may use later */ static long long_ret; static u_long ulong_ret; stati

8、c unsigned char stringSPRINT_MAX_LEN; static oid objidMAX_OID_LEN; static struct counter64 c64; if (header_generic(vp, name, length, exact, var_len, write_method) = MATCH_FAILED) return NULL; /* * this is where we do the value assignments for the mib results. */ switch (vp-magic) case BLUENUM: *writ

9、e_method = write_bluenum; VAR = VALUE; /* XXX */ /* 编译 时 此两处会报错。注释此行 return (u_char *) & VAR; /* 修改完毕可正常编译安装 将&VAR修 default: /* 改为固定值 ERROR_MSG(); return NULL;intwrite_bluenum(int action, u_char * var_val, u_char var_val_type, size_t var_val_len, u_char * statP, oid * name, size_t name_len) long val

10、ue; int size; switch (action) case RESERVE1: if (var_val_type != ASN_INTEGER) fprintf(stderr, write to blue not ASN_INTEGERn); return SNMP_ERR_WRONGTYPE; if (var_val_len sizeof(long) fprintf(stderr, write to blue: bad lengthn); return SNMP_ERR_WRONGLENGTH; break; case RESERVE2: size = var_val_len; v

11、alue = *(long *) var_val; break; case FREE: /* * Release any resources that have been allocated */ break; case ACTION: /* * The variable has been stored in value for you to use, * and you have just been asked to do something with it. * Note that anything done here must be reversable in the UNDO case

12、 */ break; case UNDO: /* * Back out any changes made in the ACTION case */ break; case COMMIT: /* * Things are working well, so its now safe to make the change * permanently. Make sure that anything done here cant fail! */ break; return SNMP_ERR_NOERROR;2 mib的加载:上面的NEW-MIBBLACK-MIBGREEN-MIBBLUE-MIBNEW-MIB2WHITE-MIB由于都是按照 SNMP概要设计_0.1.doc 进行生成,因此都是在此路径下。每次只能加载排在首位的NEW-MIB中的节点。例如现在加载BLACK-MIB中的节点 则把原来在前面的NEW-MIB右键卸载则有如下结果mib生成的C代码模板,具体修改方在学习中。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号