summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorhugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2005-01-23 19:07:01 +0000
committerhugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2005-01-23 19:07:01 +0000
commit1c2ef5e2633fc762d476bedbfa95b01a4b062cc4 (patch)
treee04f13f538f4bddd687a206072c297613bec55b1 /src
parenta6ead8ca5e212e2b723674bcdd81a78dec1ca36c (diff)
downloadzabbix-1c2ef5e2633fc762d476bedbfa95b01a4b062cc4.tar.gz
zabbix-1c2ef5e2633fc762d476bedbfa95b01a4b062cc4.tar.xz
zabbix-1c2ef5e2633fc762d476bedbfa95b01a4b062cc4.zip
- fixed support of negative values for SNMP integers (Alexei)
git-svn-id: svn://svn.zabbix.com/trunk@1622 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src')
-rw-r--r--src/zabbix_server/checks_snmp.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/zabbix_server/checks_snmp.c b/src/zabbix_server/checks_snmp.c
index af04fd32..2c6a0710 100644
--- a/src/zabbix_server/checks_snmp.c
+++ b/src/zabbix_server/checks_snmp.c
@@ -46,7 +46,7 @@ int get_value_snmp(double *result,char *result_str,DB_ITEM *item,char *error, in
zabbix_log( LOG_LEVEL_DEBUG, "In get_value_SNMP()");
- assert((item->type == ITEM_TYPE_SNMPv1)||(item->type == ITEM_TYPE_SNMPv2c));
+/* assert((item->type == ITEM_TYPE_SNMPv1)||(item->type == ITEM_TYPE_SNMPv2c)); */
assert((item->type == ITEM_TYPE_SNMPv1)||(item->type == ITEM_TYPE_SNMPv2c)||(item->type == ITEM_TYPE_SNMPv3));
snmp_sess_init( &session );
@@ -193,8 +193,8 @@ int get_value_snmp(double *result,char *result_str,DB_ITEM *item,char *error, in
int count=1;
zabbix_log( LOG_LEVEL_DEBUG, "AV loop()");
- if( (vars->type == ASN_INTEGER) ||
- (vars->type == ASN_UINTEGER)||
+/* if( (vars->type == ASN_INTEGER) ||*/
+ if( (vars->type == ASN_UINTEGER)||
(vars->type == ASN_COUNTER) ||
(vars->type == ASN_TIMETICKS) ||
(vars->type == ASN_GAUGE)
@@ -208,6 +208,11 @@ int get_value_snmp(double *result,char *result_str,DB_ITEM *item,char *error, in
/*sprintf(result_str,"%ld",(long)*vars->val.integer);*/
snprintf(result_str,MAX_STRING_LEN-1,"%lu",(long)*vars->val.integer);
}
+ else if(vars->type == ASN_INTEGER)
+ {
+ *result=(long)*vars->val.integer;
+ snprintf(result_str,MAX_STRING_LEN-1,"%ld",(long)*vars->val.integer);
+ }
else if(vars->type == ASN_OCTET_STR)
{
memcpy(result_str,vars->val.string,vars->val_len);