Re: Sending traps using Perl

Bart Van Assche <[email protected]>
Newsgroups gmane.network.net-snmp.user
Message-ID <CAO+b5-ppzkneB5CMuJwKOihzUQn3AFvG03fJutxVL0ZVWZzAZQ@mail.gmail.com>
On Tue, Oct 4, 2011 at 3:57 PM, <[email protected]> wrote:

> From Bart's statement below it is suggested that I can directly obtain the
> value of sysUpTime from my SubAgent - How do I obtain this from my Perl
> module?
>
> What the Perl SNMP module does is to include the time elapsed since system
> startup in a trap if the uptime has not been specified explicitly. If you
> want that value to match the sysUptime of the SNMP agent on the same
> system,
> I propose that you query that value before sending a trap.
>

Does the function uptime() defined in the attached patch help (not tested) ?
It can be used e.g. as follows:

C:\Perl\bin\perl -e "use SNMP; use NetSNMP::agent; $SNMP::dump_packet=1; my
$agent = new NetSNMP::agent(); my $session = new SNMP::TrapSession(Community
=> \"trap\", Port => 162, Version => \"2c\"); $session->trap(oid =>
\"warmStart\", uptime => $agent->uptime());"


[PATCH] CHANGES: perl: Add agent::uptime()

---
 perl/agent/agent.pm |    6 ++++++
 perl/agent/agent.xs |    7 +++++++
 2 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/perl/agent/agent.pm b/perl/agent/agent.pm
index 6135443..4ffd3ea 100644
--- a/perl/agent/agent.pm
+++ b/perl/agent/agent.pm
@@ -199,6 +199,12 @@ sub agent_check_and_process {
     __agent_check_and_process($blocking || 0);
 }

+sub uptime {
+    my ($self) = @_;
+    $self->maybe_init_lib();
+    return _uptime();
+}
+
 bootstrap NetSNMP::agent $VERSION;

 # Preloaded methods go here.
diff --git a/perl/agent/agent.xs b/perl/agent/agent.xs
index ee77d50..b81886f 100644
--- a/perl/agent/agent.xs
+++ b/perl/agent/agent.xs
@@ -239,6 +239,13 @@ __agent_check_and_process(block = 1)
     OUTPUT:
        RETVAL

+int
+_uptime()
+    CODE:
+        RETVAL = netsnmp_get_agent_uptime();
+    OUTPUT:
+       RETVAL
+
 void
 init_mib()
     CODE:
--
1.7.5.1

------------------------------------------------------------------------------
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
[email protected]
Please see the following page to unsubscribe or change other options:
https://lists.sourceforge.net/lists/listinfo/net-snmp-users
0001-CHANGES-perl-Add-agent-uptime.patch (application/octet-stream, 1.1 KB)
From af872c80a0335eec8b492f24b8a294c558dc83fb Mon Sep 17 00:00:00 2001
From: Bart Van Assche <[email protected]>
Date: Wed, 5 Oct 2011 08:45:49 +0200
Subject: [PATCH] CHANGES: perl: Add agent::uptime()

---
 perl/agent/agent.pm |    6 ++++++
 perl/agent/agent.xs |    7 +++++++
 2 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/perl/agent/agent.pm b/perl/agent/agent.pm
index 6135443..4ffd3ea 100644
--- a/perl/agent/agent.pm
+++ b/perl/agent/agent.pm
@@ -199,6 +199,12 @@ sub agent_check_and_process {
     __agent_check_and_process($blocking || 0);
 }
 
+sub uptime {
+    my ($self) = @_;
+    $self->maybe_init_lib();
+    return _uptime();
+}
+
 bootstrap NetSNMP::agent $VERSION;
 
 # Preloaded methods go here.
diff --git a/perl/agent/agent.xs b/perl/agent/agent.xs
index ee77d50..b81886f 100644
--- a/perl/agent/agent.xs
+++ b/perl/agent/agent.xs
@@ -239,6 +239,13 @@ __agent_check_and_process(block = 1)
     OUTPUT:
 	RETVAL
 
+int
+_uptime()
+    CODE:
+        RETVAL = netsnmp_get_agent_uptime();
+    OUTPUT:
+	RETVAL
+
 void
 init_mib()
     CODE:
-- 
1.7.5.1
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.