大树青云 2015-06-01 00:33 采纳率: 0%
浏览 3493

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条回答 默认 最新

  • threenewbee 2015-06-01 01:51
    关注
    评论

报告相同问题?