|
|
@@ -522,12 +522,35 @@ pduChannelTable_handler(
|
|
|
GlobalPowerManger* iterator;
|
|
|
//GlobalPowerInfo powerInfo;
|
|
|
char buffer[16];
|
|
|
+ oid begin_next_oid[] = {1, 3, 6, 1, 4, 1, 2024, 1, 3, 9, 1, 1, 1};
|
|
|
+ int max_clonum=11;
|
|
|
switch(reqinfo->mode)
|
|
|
{
|
|
|
case MODE_GET:
|
|
|
+ case MODE_GETNEXT:
|
|
|
for (request = requests; request; request = request->next)
|
|
|
{
|
|
|
table_info = netsnmp_extract_table_info(request);
|
|
|
+ if (reqinfo->mode==MODE_GETNEXT)
|
|
|
+ {
|
|
|
+ if (table_info->index_oid[0] == 0)
|
|
|
+ {
|
|
|
+ table_info->index_oid[0] = 1;
|
|
|
+ table_info->colnum = 1;
|
|
|
+ snmp_set_var_objid(requests->requestvb, begin_next_oid, OID_LENGTH(begin_next_oid));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if (table_info->colnum > max_clonum)
|
|
|
+ {
|
|
|
+ table_info->index_oid[0] += 1;
|
|
|
+ table_info->colnum =1;
|
|
|
+ }
|
|
|
+ oid next_oid[] = {1, 3, 6, 1, 4, 1, 2024, 1, 3, 9, 1, table_info->colnum, table_info->index_oid[0]};
|
|
|
+ snmp_set_var_objid(requests->requestvb, next_oid, OID_LENGTH(next_oid));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
int nIndex=1;
|
|
|
list_for_each_entry(iterator, &__globalDeviceManage._globalPowerManger.list, list)
|
|
|
{
|
|
|
@@ -762,12 +785,34 @@ pduGroupTable_handler(
|
|
|
}
|
|
|
|
|
|
char buffer[16];
|
|
|
+ oid begin_next_oid[] = {1, 3, 6, 1, 4, 1, 2024, 1, 3, 10, 1, 1, 1};
|
|
|
+ int max_clonum = 4;
|
|
|
switch (reqinfo->mode)
|
|
|
{
|
|
|
case MODE_GET:
|
|
|
+ case MODE_GETNEXT:
|
|
|
for (request = requests; request; request = request->next)
|
|
|
{
|
|
|
table_info = netsnmp_extract_table_info(request);
|
|
|
+ if (reqinfo->mode == MODE_GETNEXT)
|
|
|
+ {
|
|
|
+ if (table_info->index_oid[0] == 0)
|
|
|
+ {
|
|
|
+ table_info->index_oid[0] = 1;
|
|
|
+ table_info->colnum = 1;
|
|
|
+ snmp_set_var_objid(requests->requestvb, begin_next_oid, OID_LENGTH(begin_next_oid));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if (table_info->colnum > max_clonum)
|
|
|
+ {
|
|
|
+ table_info->index_oid[0] += 1;
|
|
|
+ table_info->colnum = 1;
|
|
|
+ }
|
|
|
+ oid next_oid[] = {1, 3, 6, 1, 4, 1, 2024, 1, 3, 10, 1, table_info->colnum, table_info->index_oid[0]};
|
|
|
+ snmp_set_var_objid(requests->requestvb, next_oid, OID_LENGTH(next_oid));
|
|
|
+ }
|
|
|
+ }
|
|
|
int nIndex = 1;
|
|
|
list_for_each_entry(_GroupInfoTemp, &group_list.list, list)
|
|
|
{
|
|
|
@@ -953,8 +998,7 @@ pduGroupTable_handler(
|
|
|
/* we should never get here, so this is a really bad error */
|
|
|
snmp_log(LOG_ERR, "unknown mode (%d) in handle_pduType\n", reqinfo->mode);
|
|
|
return SNMP_ERR_GENERR;
|
|
|
- }
|
|
|
-
|
|
|
+ }
|
|
|
|
|
|
return SNMP_ERR_NOERROR;
|
|
|
}
|
|
|
@@ -975,12 +1019,36 @@ pduSensorTable_handler(
|
|
|
GlobalSensorManger *iterator = NULL;
|
|
|
//
|
|
|
char buffer[16];
|
|
|
+ oid begin_next_oid[] = {1, 3, 6, 1, 4, 1, 2024, 1, 4, 1, 1, 1, 1};
|
|
|
+ int max_clonum = 10;
|
|
|
switch (reqinfo->mode)
|
|
|
{
|
|
|
case MODE_GET:
|
|
|
+ case MODE_GETNEXT:
|
|
|
for (request = requests; request; request = request->next)
|
|
|
{
|
|
|
table_info = netsnmp_extract_table_info(request);
|
|
|
+
|
|
|
+ if (reqinfo->mode == MODE_GETNEXT)
|
|
|
+ {
|
|
|
+ if (table_info->index_oid[0] == 0)
|
|
|
+ {
|
|
|
+ table_info->index_oid[0] = 1;
|
|
|
+ table_info->colnum = 1;
|
|
|
+ snmp_set_var_objid(requests->requestvb, begin_next_oid, OID_LENGTH(begin_next_oid));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if (table_info->colnum > max_clonum)
|
|
|
+ {
|
|
|
+ table_info->index_oid[0] += 1;
|
|
|
+ table_info->colnum = 1;
|
|
|
+ }
|
|
|
+ oid next_oid[] = {1, 3, 6, 1, 4, 1, 2024, 1, 4, 1, 1, table_info->colnum, table_info->index_oid[0]};
|
|
|
+ snmp_set_var_objid(requests->requestvb, next_oid, OID_LENGTH(next_oid));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
int nIndex = table_info->index_oid[0];
|
|
|
bool findinstance = false;
|
|
|
|
|
|
@@ -990,8 +1058,6 @@ pduSensorTable_handler(
|
|
|
{
|
|
|
continue;
|
|
|
}
|
|
|
- findinstance = true;
|
|
|
-
|
|
|
memset(buffer, 0, sizeof(buffer));
|
|
|
switch (table_info->colnum)
|
|
|
{
|
|
|
@@ -1010,6 +1076,9 @@ pduSensorTable_handler(
|
|
|
case COLUMN_PDUSENSORMODBUSADDRESS:
|
|
|
snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, iterator->sensor_addr);
|
|
|
break;
|
|
|
+ case 6:
|
|
|
+ snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, iterator->sensor_node_number);
|
|
|
+ break;
|
|
|
case COLUMN_PDUSENSORSTATUS:
|
|
|
snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, iterator->sensor_status);
|
|
|
break;
|
|
|
@@ -1032,10 +1101,6 @@ pduSensorTable_handler(
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
- if (!findinstance)
|
|
|
- {
|
|
|
- netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE);
|
|
|
- }
|
|
|
}
|
|
|
break;
|
|
|
case MODE_SET_RESERVE1:
|
|
|
@@ -1132,9 +1197,12 @@ pduAlarmHistoryTable_handler(
|
|
|
|
|
|
//
|
|
|
char buffer[16];
|
|
|
+ oid begin_next_oid[] = {1, 3, 6, 1, 4, 1, 2024, 1, 6, 1, 1, 1, 1};
|
|
|
+ int max_clonum = 7;
|
|
|
switch (reqinfo->mode)
|
|
|
{
|
|
|
case MODE_GET:
|
|
|
+ case MODE_GETNEXT:
|
|
|
{
|
|
|
// 初始化表
|
|
|
int nAlarmNumber = 0;
|
|
|
@@ -1162,12 +1230,33 @@ pduAlarmHistoryTable_handler(
|
|
|
log_e("get power alarm error.");
|
|
|
return SNMP_ERR_GENERR;
|
|
|
}
|
|
|
+
|
|
|
|
|
|
for (request = requests; request; request = request->next)
|
|
|
{
|
|
|
table_info = netsnmp_extract_table_info(request);
|
|
|
+
|
|
|
+ if (reqinfo->mode == MODE_GETNEXT)
|
|
|
+ {
|
|
|
+ if (table_info->index_oid[0] == 0)
|
|
|
+ {
|
|
|
+ table_info->index_oid[0] = 1;
|
|
|
+ table_info->colnum = 1;
|
|
|
+ snmp_set_var_objid(requests->requestvb, begin_next_oid, OID_LENGTH(begin_next_oid));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if (table_info->colnum > max_clonum)
|
|
|
+ {
|
|
|
+ table_info->index_oid[0] += 1;
|
|
|
+ table_info->colnum = 1;
|
|
|
+ }
|
|
|
+ oid next_oid[] = {1, 3, 6, 1, 4, 1, 2024, 1, 6, 1, 1, table_info->colnum, table_info->index_oid[0]};
|
|
|
+ snmp_set_var_objid(requests->requestvb, next_oid, OID_LENGTH(next_oid));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
int nIndex = 1;
|
|
|
- bool findinstance = false;
|
|
|
_AlarmAckInfo *_temp;
|
|
|
list_for_each_entry(_temp, &_alarm_ack_info.list, list)
|
|
|
{
|
|
|
@@ -1182,8 +1271,6 @@ pduAlarmHistoryTable_handler(
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
- findinstance = true;
|
|
|
-
|
|
|
memset(buffer, 0, sizeof(buffer));
|
|
|
switch (table_info->colnum)
|
|
|
{
|
|
|
@@ -1215,11 +1302,6 @@ pduAlarmHistoryTable_handler(
|
|
|
//}
|
|
|
break;
|
|
|
}
|
|
|
-
|
|
|
- if (!findinstance)
|
|
|
- {
|
|
|
- netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE);
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
// 释放资源
|
|
|
@@ -1273,14 +1355,35 @@ pduChannelLimitTable_handler(
|
|
|
GlobalPowerManger *iterator = NULL;
|
|
|
//
|
|
|
char buffer[16];
|
|
|
+ oid begin_next_oid[] = {1, 3, 6, 1, 4, 1, 2024, 1, 7, 2, 6, 1, 1, 1};
|
|
|
+ int max_clonum = 7;
|
|
|
switch (reqinfo->mode)
|
|
|
{
|
|
|
case MODE_GET:
|
|
|
+ case MODE_GETNEXT:
|
|
|
for (request = requests; request; request = request->next)
|
|
|
{
|
|
|
table_info = netsnmp_extract_table_info(request);
|
|
|
+ if (reqinfo->mode == MODE_GETNEXT)
|
|
|
+ {
|
|
|
+ if (table_info->index_oid[0] == 0)
|
|
|
+ {
|
|
|
+ table_info->index_oid[0] = 1;
|
|
|
+ table_info->colnum = 1;
|
|
|
+ snmp_set_var_objid(requests->requestvb, begin_next_oid, OID_LENGTH(begin_next_oid));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if (table_info->colnum > max_clonum)
|
|
|
+ {
|
|
|
+ table_info->index_oid[0] += 1;
|
|
|
+ table_info->colnum = 1;
|
|
|
+ }
|
|
|
+ oid next_oid[] = {1, 3, 6, 1, 4, 1, 2024, 1, 7, 2, 6, 1,table_info->colnum, table_info->index_oid[0]};
|
|
|
+ snmp_set_var_objid(requests->requestvb, next_oid, OID_LENGTH(next_oid));
|
|
|
+ }
|
|
|
+ }
|
|
|
int nIndex = 1;
|
|
|
- bool findinstance = false;
|
|
|
|
|
|
list_for_each_entry(iterator, &__globalDeviceManage._globalPowerManger.list, list)
|
|
|
{
|
|
|
@@ -1293,7 +1396,6 @@ pduChannelLimitTable_handler(
|
|
|
{
|
|
|
break;
|
|
|
}
|
|
|
- findinstance = true;
|
|
|
|
|
|
memset(buffer, 0, sizeof(buffer));
|
|
|
switch (table_info->colnum)
|
|
|
@@ -1331,11 +1433,6 @@ pduChannelLimitTable_handler(
|
|
|
//}
|
|
|
break;
|
|
|
}
|
|
|
-
|
|
|
- if (!findinstance)
|
|
|
- {
|
|
|
- netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE);
|
|
|
- }
|
|
|
}
|
|
|
break;
|
|
|
case MODE_SET_RESERVE1:
|
|
|
@@ -1375,14 +1472,37 @@ pduSensorLimitTable_handler(
|
|
|
GlobalSensorManger *iterator = NULL;
|
|
|
//
|
|
|
char buffer[16];
|
|
|
+ oid begin_next_oid[] = {1, 3, 6, 1, 4, 1, 2024, 1, 7, 3, 1, 1, 1, 1};
|
|
|
+ int max_clonum = 6;
|
|
|
switch (reqinfo->mode)
|
|
|
{
|
|
|
case MODE_GET:
|
|
|
+ case MODE_GETNEXT:
|
|
|
for (request = requests; request; request = request->next)
|
|
|
{
|
|
|
table_info = netsnmp_extract_table_info(request);
|
|
|
+
|
|
|
+ if (reqinfo->mode == MODE_GETNEXT)
|
|
|
+ {
|
|
|
+ if (table_info->index_oid[0] == 0)
|
|
|
+ {
|
|
|
+ table_info->index_oid[0] = 1;
|
|
|
+ table_info->colnum = 1;
|
|
|
+ snmp_set_var_objid(requests->requestvb, begin_next_oid, OID_LENGTH(begin_next_oid));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if (table_info->colnum > max_clonum)
|
|
|
+ {
|
|
|
+ table_info->index_oid[0] += 1;
|
|
|
+ table_info->colnum = 1;
|
|
|
+ }
|
|
|
+ oid next_oid[] = {1, 3, 6, 1, 4, 1, 2024, 1, 7, 3, 1, 1, table_info->colnum, table_info->index_oid[0]};
|
|
|
+ snmp_set_var_objid(requests->requestvb, next_oid, OID_LENGTH(next_oid));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
int nIndex = table_info->index_oid[0];
|
|
|
- bool findinstance = false;
|
|
|
|
|
|
list_for_each_entry(iterator, &__globalDeviceManage._globalSensorManger.list, list)
|
|
|
{
|
|
|
@@ -1390,7 +1510,6 @@ pduSensorLimitTable_handler(
|
|
|
{
|
|
|
continue;
|
|
|
}
|
|
|
- findinstance = true;
|
|
|
|
|
|
memset(buffer, 0, sizeof(buffer));
|
|
|
switch (table_info->colnum)
|
|
|
@@ -1421,10 +1540,6 @@ pduSensorLimitTable_handler(
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
- if (!findinstance)
|
|
|
- {
|
|
|
- netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE);
|
|
|
- }
|
|
|
}
|
|
|
break;
|
|
|
case MODE_SET_RESERVE1:
|