On Thu, Sep 29, 2011 at 5:41 PM, <ali.br...@selex-comms.com> wrote:
> I don't believe that is the problem. The actual amount that the timeticks 
> increases between sending commands is correct, it's
> as if it's just not been initialised correctly. It doesn't seem to be a case 
> of dividing the value by ten. Also, even rebooting my
> PC doesn't seem to have reset the value.
>
> The odd thing is that if I do an snmp Get request on my Agent on sysUpTime 
> the correct time ticks value is returned i.e how
> long my Master Agent has been running. The unusual timeticks value seems to 
> be only occurring when sending Traps. I'm a
> bit confused that the two values are so different.

I'll have a closer look at this.

> Also, Do you know why when sending an SNMPv2 trap without any additional 
> var-binds it fails but  as an  SNMPv1 trap it works.

Does the attached patch help ?

Bart.

diff --git a/perl/SNMP/SNMP.xs b/perl/SNMP/SNMP.xs
index a0cfe69..459ac87 100644
--- a/perl/SNMP/SNMP.xs
+++ b/perl/SNMP/SNMP.xs
@@ -4437,7 +4437,7 @@ snmp_trapV2(sess_ref,uptime,trap_oid,varlist_ref)
        
            New (0, oid_arr, MAX_OID_LEN, oid);

-           if (oid_arr && SvROK(sess_ref) && SvROK(varlist_ref)) {
+           if (oid_arr && SvROK(sess_ref)) {

               sess_ptr_sv = hv_fetch((HV*)SvRV(sess_ref), "SessPtr", 7, 1);
              ss = (SnmpSession *)SvIV((SV*)SvRV(*sess_ptr_sv));
@@ -4451,8 +4451,13 @@ snmp_trapV2(sess_ref,uptime,trap_oid,varlist_ref)
        
               pdu = snmp_pdu_create(SNMP_MSG_TRAP2);

-              varlist = (AV*) SvRV(varlist_ref);
-              varlist_len = av_len(varlist);
+              if (SvROK(varlist_ref)) {
+                  varlist = (AV*) SvRV(varlist_ref);
+                  varlist_len = av_len(varlist);
+              } else {
+                  varlist = NULL;
+                  varlist_len = -1;
+              }
              /************************************************/
               res = __add_var_val_str(pdu, sysUpTime, SYS_UPTIME_OID_LEN,
                                uptime, strlen(uptime), TYPE_TIMETICKS);
From a12a18bf389835b058557ce6f30ed7363dc231be Mon Sep 17 00:00:00 2001
From: Bart Van Assche <bvanass...@acm.org>
Date: Thu, 29 Sep 2011 19:03:02 +0200
Subject: [PATCH] CHANGES: perl: Support sending SNMPv2 traps with an empty 
varbind list

An example:
perl -e 'use SNMP; my $session = new SNMP::TrapSession(Version => "2c"); 
$session->trap(oid => "warmStart")'
---
 perl/SNMP/SNMP.xs |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/perl/SNMP/SNMP.xs b/perl/SNMP/SNMP.xs
index a0cfe69..459ac87 100644
--- a/perl/SNMP/SNMP.xs
+++ b/perl/SNMP/SNMP.xs
@@ -4437,7 +4437,7 @@ snmp_trapV2(sess_ref,uptime,trap_oid,varlist_ref)
           
            New (0, oid_arr, MAX_OID_LEN, oid);
 
-           if (oid_arr && SvROK(sess_ref) && SvROK(varlist_ref)) {
+           if (oid_arr && SvROK(sess_ref)) {
 
               sess_ptr_sv = hv_fetch((HV*)SvRV(sess_ref), "SessPtr", 7, 1);
              ss = (SnmpSession *)SvIV((SV*)SvRV(*sess_ptr_sv));
@@ -4451,8 +4451,13 @@ snmp_trapV2(sess_ref,uptime,trap_oid,varlist_ref)
              
               pdu = snmp_pdu_create(SNMP_MSG_TRAP2);
 
-              varlist = (AV*) SvRV(varlist_ref);
-              varlist_len = av_len(varlist);
+              if (SvROK(varlist_ref)) {
+                  varlist = (AV*) SvRV(varlist_ref);
+                  varlist_len = av_len(varlist);
+              } else {
+                  varlist = NULL;
+                  varlist_len = -1;
+              }
              /************************************************/
               res = __add_var_val_str(pdu, sysUpTime, SYS_UPTIME_OID_LEN,
                                uptime, strlen(uptime), TYPE_TIMETICKS);
-- 
1.7.3.4

------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure contains a
definitive record of customers, application performance, security
threats, fraudulent activity and more. Splunk takes this data and makes
sense of it. Business sense. IT sense. Common sense.
http://p.sf.net/sfu/splunk-d2dcopy1
_______________________________________________
Net-snmp-users mailing list
Net-snmp-users@lists.sourceforge.net
Please see the following page to unsubscribe or change other options:
https://lists.sourceforge.net/lists/listinfo/net-snmp-users

Reply via email to