Index: ossp-pkg/snmpdx/00TODO RCS File: /v/ossp/cvs/ossp-pkg/snmpdx/00TODO,v co -q -kk -p'1.2' '/v/ossp/cvs/ossp-pkg/snmpdx/00TODO,v' | diff -u /dev/null - -L'ossp-pkg/snmpdx/00TODO' 2>/dev/null --- ossp-pkg/snmpdx/00TODO +++ - 2025-05-20 08:49:00.053479766 +0200 @@ -0,0 +1,11 @@ + +- implement more probes [thl] + +- support MIB SEQUENCEs [rse] + +- split out MIB parts of each probe into own sub-MIBs + +- Makefile and snmpdx.sh still contains some hard-coded things + +- provide top-level MIB prefix name as variable + Index: ossp-pkg/snmpdx/snmpdx RCS File: /v/ossp/cvs/ossp-pkg/snmpdx/Attic/snmpdx,v rcsdiff -q -kk '-r1.1' '-r1.2' -u '/v/ossp/cvs/ossp-pkg/snmpdx/Attic/snmpdx,v' 2>/dev/null --- snmpdx 2003/09/01 15:22:41 1.1 +++ snmpdx 2003/09/02 12:12:55 1.2 @@ -30,6 +30,7 @@ require 5; use strict; use warnings; +use FindBin; use Getopt::Long; use IO; @@ -464,23 +465,27 @@ package main; +# find path to ourself +my $myroot = "$FindBin::Bin"; + # parameters (defaults) +my $config = "$myroot/snmpdx.cfg"; my $version = 0; my $help = 0; my $tmpdir = ($ENV{TMPDIR} || $ENV{TEMPDIR} || "/tmp"); my $get = 0; my $next = 0; my $bindir = "/cw/bin"; -my $probedir = "./snmpdx.d"; +my $probedir = "$myroot/snmpdx.d"; my $probename = "*"; -my $mibdir = "./snmpdx.mib"; +my $mibdir = "$myroot/snmpdx.mib"; my $mibname = "snmpdx"; -my $logfile = "./snmpdx.log"; +my $logfile = "$myroot/snmpdx.log"; my $loglevel = 9; # command line parsing -Getopt::Long::Configure("bundling"); -my $result = GetOptions( +my %options = ( + 'c|config=s' => \$config, 'V|version' => \$version, 'h|help' => \$help, 't|tmpdir=s' => \$tmpdir, @@ -493,10 +498,13 @@ 'm|mibname=s' => \$mibname, 'l|logfile=s' => \$logfile, 'L|loglevel=i' => \$loglevel, -) || die "option parsing failed"; +); +Getopt::Long::Configure("bundling"); +my $result = GetOptions(%options) || die "option parsing failed"; if ($help) { print "Usage: $progname [options] [SPECFILE ...]\n" . "Available options:\n" . + " -c,--config=PATH read command line options from configuration fil\n" . " -V,--version print program version\n" . " -h,--help print out this usage page\n" . " -t,--tmpdir=PATH filesystem path to temporary directory\n" . @@ -516,6 +524,26 @@ exit(0); } +# support external configuration file +if (-f $config) { + my $cfg = new IO::File "<$config"; + my $line; + while (defined($line = $cfg->getline())) { + $line =~ s|\r?\n$||s; + next if ($line =~ m/^\s*(#.*)?$/s); + my ($option, $value) = ($line =~ m|^\s*(\S+)\s+(.+?)\s*$|s); + die "invalid configuration line \"$line\"" + if (not defined($option) or not defined($value)); + my ($var) = map { $options{$_} } + grep { $_ =~ m/^.\|\Q$option\E(=[si])?$/s } + keys(%options); + die "invalid configuration option \"$option\"" + if (not defined($var)); + ${$var} = $value; + } + $cfg->close; +} + # create daemon run-time context my $ctx = {}; $ctx->{-log} = new My::Log ($loglevel, $logfile); Index: ossp-pkg/snmpdx/snmpdx.cfg RCS File: /v/ossp/cvs/ossp-pkg/snmpdx/Attic/snmpdx.cfg,v co -q -kk -p'1.1' '/v/ossp/cvs/ossp-pkg/snmpdx/Attic/snmpdx.cfg,v' | diff -u /dev/null - -L'ossp-pkg/snmpdx/snmpdx.cfg' 2>/dev/null --- ossp-pkg/snmpdx/snmpdx.cfg +++ - 2025-05-20 08:49:00.062069195 +0200 @@ -0,0 +1,8 @@ +## +## snmpdx.cfg -- configuration file for SNMP Daemon Extension +## + +mibdir /u/rse/wrk/ossp/snmpdx/snmpdx.mib:/cw/share/snmp/mibs +probedir /u/rse/wrk/ossp/snmpdx/snmpdx.d +logfile /tmp/snmpdx-rse.log + Index: ossp-pkg/snmpdx/snmpdx.sh RCS File: /v/ossp/cvs/ossp-pkg/snmpdx/Attic/snmpdx.sh,v co -q -kk -p'1.2' '/v/ossp/cvs/ossp-pkg/snmpdx/Attic/snmpdx.sh,v' | diff -u - /dev/null -L'ossp-pkg/snmpdx/snmpdx.sh' 2>/dev/null --- ossp-pkg/snmpdx/snmpdx.sh +++ /dev/null 2025-05-20 08:48:17.000000000 +0200 @@ -1,20 +0,0 @@ -#!/bin/sh -openpkgdir=/cw -me="$0" -case "$me" in - /* ) ;; - */* ) me="`pwd`/$me" ;; - * ) - for p in `echo $PATH | sed -e 's/:/ /g'`; do - if [ -x "$p/$me" ]; then - me="$p/$me" - break - fi - done - ;; -esac -rootdir=`echo $me | sed -e 's;/[^/]*$;;' | sed -e 's;//*;/;g'` -$openpkgdir/bin/perl $rootdir/snmpdx \ - -M $rootdir/snmpdx.mib:$openpkgdir/share/snmp/mibs \ - -P $rootdir/snmpdx.d \ - -l /tmp/snmpdx.log