2 janeqi1987 janeqi1987 于 2015.06.01 08:33 提问

net-snmp表中数据的获取、添加、修改、删除是怎么实现的?

+--cpeProfileTable(1)
| |
| +--cpeProfileEntry(1)
| | Index: mmeIndex
| |
| +-- -RW- Unsigned mmeIndex(1)
| +-- -RW- Unsigned mmeGroupId(2)
| +-- -RW- INTEGER mmeCode(3)
| +-- -RW- Unsigned cpeStatusOp(4)

cpeProfileTable_handler函数中
case MODE_GET情况下
switch (table_info->colnum) {
case COLUMN_CPEINDEX:
if ( !table_entry ) {
netsnmp_set_request_error(reqinfo, request,
SNMP_NOSUCHINSTANCE);
continue;
}
snmp_set_var_typed_integer( request->requestvb, ASN_UNSIGNED,
table_entry->cpeIndex);

        case  COLUMN_XXX其他几个省略

因为是根据index来get获取一行数据,在这里如何得到index对应的行?怎么response一整行而不是行中的一个列项呢?

case MODE_SET_ACTION情况下,添加和修改时
需要自己建立链表存储吗?还是在代码哪里添加cpeProfileTable_createEntry函数snmp自己完成链表操作?
修改的情况下index我也不清楚怎么得到对应的行再去修改数据。

switch (table_info->colnum) {
case COLUMN_CPEINDEX:
table_entry->old_cpeIndex = table_entry->cpeIndex;
table_entry->cpeIndex = *request->requestvb->val.integer;
break;

2个回答

caozhy
caozhy   Ds   Rxr 2015.06.01 09:51
luluorxixi
luluorxixi   2015.09.28 17:50

http://blog.csdn.net/ropai/article/details/12783107

我也在做,还没弄出来,看这篇有点参考意义

Csdn user default icon
上传中...
上传图片
插入图片