Import Upstream version 5.9.4+dfsg

This commit is contained in:
luoyaoming 2024-04-24 17:23:15 +08:00
parent 115daf9f5e
commit 720aed252f
1155 changed files with 56775 additions and 41191 deletions

View File

@ -1,20 +1,76 @@
image:
- Visual Studio 2017
- Ubuntu
- Ubuntu1604
- Ubuntu2004
- macos-monterey
- Visual Studio 2022
environment:
CYG_MIRROR: http://mirrors.kernel.org/sourceware/cygwin/
matrix:
- BUILD: MSVCDYNAMIC64
- BUILD: MSVCSTATIC64
- BUILD: INSTALLER
- BUILD: MinGW32
- BUILD: MSYS2
- BUILD: MinGW64
- BUILD: Cygwin32
- BUILD: Cygwin64
matrix:
allow_failures:
- BUILD: MINGW64
exclude:
- image: Ubuntu
BUILD: MSVCSTATIC64
- image: Ubuntu
BUILD: INSTALLER
- image: Ubuntu
BUILD: MinGW32
- image: Ubuntu
BUILD: MSYS2
- image: Ubuntu
BUILD: MinGW64
- image: Ubuntu1604
BUILD: MSVCSTATIC64
- image: Ubuntu1604
BUILD: INSTALLER
- image: Ubuntu1604
BUILD: MinGW32
- image: Ubuntu1604
BUILD: MSYS2
- image: Ubuntu1604
BUILD: MinGW64
- image: Ubuntu2004
BUILD: MSVCSTATIC64
- image: Ubuntu2004
BUILD: INSTALLER
- image: Ubuntu2004
BUILD: MinGW32
- image: Ubuntu2004
BUILD: MSYS2
- image: Ubuntu2004
BUILD: MinGW64
- image: macos-monterey
BUILD: MSVCSTATIC64
- image: macos-monterey
BUILD: INSTALLER
- image: macos-monterey
BUILD: MinGW32
- image: macos-monterey
BUILD: MSYS2
- image: macos-monterey
BUILD: MinGW64
artifacts:
- path: installer
clone_depth: 5
install:
- cmd: 'ci\openssl.bat'
- sh: 'sudo ci/install.sh'
build_script:
- 'call "ci\build.bat"'
- cmd: 'ci\build.bat'
- sh: 'ci/build.sh'
test_script:
- cmd: 'ci\test.bat'
- sh: 'if [ $(uname) != Darwin ]; then ci/test.sh; fi'

11
.cirrus.yml Normal file
View File

@ -0,0 +1,11 @@
env:
CIRRUS_CLONE_DEPTH: 5
freebsd_instance:
image_family: freebsd-14-0-snap
image_family: freebsd-13-1
image_family: freebsd-13-0
task:
install_script: sudo ci/install.sh
script: ci/build.sh

29
.github/workflows/buildtest.yml vendored Normal file
View File

@ -0,0 +1,29 @@
# See also https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions
name: Build and test
on: [push, pull_request]
jobs:
build_and_test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
mode: [regular, disable-set, mini, read-only, wolfssl]
env:
MODE: ${{ matrix.mode }}
steps:
- uses: actions/checkout@main
- name: install required packages
run: sudo bash -c "MODE=$MODE ci/install.sh"
- name: build
run: ci/build.sh
- name: test
run: ci/test.sh

77
.github/workflows/codechecker.yml vendored Normal file
View File

@ -0,0 +1,77 @@
name: CodeChecker
on: [workflow_dispatch]
#on:
# push:
# branches: [ master ]
jobs:
codechecker:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: install required packages
run: sudo apt-get install libatm-dev libperl-dev libpopt-dev libsensors4-dev libssh2-1-dev libxml2-dev uuid-dev libkrb5-dev python3-setuptools
- name: install clang v12
run: |
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh 12
sudo apt-get install clang clang-tidy
- name: install packages required by CodeChecker
run: |
sudo apt-get install doxygen gcc-multilib python-virtualenv
- name: install nodejs version 12.x
run: |
curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -
sudo apt-get install nodejs
- name: install CodeChecker v6.14
run: |
git clone https://github.com/Ericsson/CodeChecker.git /opt/codechecker
git -C /opt/codechecker/ checkout -b b6.14.0 v6.14.0
make -C /opt/codechecker venv
. /opt/codechecker/venv/bin/activate
make -C /opt/codechecker package
- name: CodeChecker version
run: |
source /opt/codechecker/venv/bin/activate
export PATH=/opt/codechecker/build/CodeChecker/bin:$PATH;
CodeChecker version
- name: configure
run: MODE=regular; ci/net-snmp-configure ${GITHUB_REF##*/}
- name: Codechecker log
run: |
source /opt/codechecker/venv/bin/activate
export PATH=/opt/codechecker/build/CodeChecker/bin:$PATH
CodeChecker log -o codechecker-log.json -b "make"
- name: Codechecker analyze
run: |
source /opt/codechecker/venv/bin/activate
export PATH=/opt/codechecker/build/CodeChecker/bin:$PATH
echo "-*/conftest.c" > codechecker.skipfile
echo "-*/conftest.cpp" >> codechecker.skipfile
echo "-*/tmp.*.c" >> codechecker.skipfile
CodeChecker analyze -j $(nproc) --clean --skip codechecker.skipfile -o ./results --report-hash context-free-v2 codechecker-log.json
#CodeChecker analyze -j $(nproc) --clean --skip codechecker.skipfile --ctu -e sensitive -o ./results --report-hash context-free-v2 codechecker-log.json
- name: CodeChecker parse
run: |
source /opt/codechecker/venv/bin/activate;
export PATH=/opt/codechecker/build/CodeChecker/bin:$PATH
CodeChecker parse -e html ./results -o ./reports_html
- name: Archive CodeChecker results
uses: actions/upload-artifact@v2
with:
name: CodeChecker reports
path: reports_html

11
.gitignore vendored
View File

@ -1,4 +1,3 @@
*~
*.bak
*.bs
*.ft
@ -14,7 +13,9 @@
*.pdb
*.rej
*.swp
*~
.libs/
__pycache__
agent/*.exe
agent/mibgroup/agent_module_dot_conf.h
agent/mibgroup/agent_module_includes.h
@ -75,7 +76,6 @@ Makefile
man/*.[1358]
man/default_store.3.h
man/manaliases
mibs/.index
mk/
module_tmp_header.h
net-snmp-5*
@ -83,6 +83,8 @@ net-snmp-6*
net-snmp-config
net-snmp-config-x
net-snmp-create-v3-user
netsnmp-agent.pc
netsnmp.pc
NEWS.new*
perl/*.json
perl/*.yml
@ -99,7 +101,9 @@ perl/blib/
perl/default_store/default_store.c
perl/NetSNMP.c
perl/OID/OID.c
perl/OID/snmp.conf
perl/SNMP/SNMP.c
perl/SNMP/snmp.conf
perl/SNMP/t/*.log
perl/SNMP/t/*.pid
perl/SNMP/t/*.stderr
@ -109,6 +113,8 @@ perl/TrapReceiver/const-xs.inc
perl/TrapReceiver/TrapReceiver.c
pm_to_blib
python/build
python/netsnmp_python.egg-info/
python/netsnmp/client_intf.*.so
sedscript
snmplib/snmpsm_init.h
snmplib/snmpsm_shutdown.h
@ -117,6 +123,7 @@ stamp-h
TAGS
testing/failed_tests
testing/testing/
testing/fuzzing/
win32/*/debug
win32/*/release
win32/bin

View File

@ -1,39 +0,0 @@
language: c
os:
- linux
- osx
env:
- env: MODE=regular
- env: MODE=disable-set
- env: MODE=mini
- env: MODE=minimalist
- env: MODE=read-only
addons:
apt:
packages:
- dpkg
- gcc
- libatm-dev
- libperl-dev
- libsensors4-dev
- libssh-dev
- libssl-dev
- make
- perl-modules
- pkg-config
- python-dev
- python-setuptools
sudo: required
before_script:
# Add an IPv6 config - see the corresponding Travis issue
# https://github.com/travis-ci/travis-ci/issues/8361
- 'if [ "${TRAVIS_OS_NAME}" == "linux" ]; then sudo sh -c ''echo 0 > /proc/sys/net/ipv6/conf/all/disable_ipv6; printf "\n::1 localhost ipv6-localhost ipv6-loopback\n" >>/etc/hosts; cat /etc/hosts''; fi'
# Upgrade openssl such that Net-SNMP can be built with Blumenthal AES support.
- 'if [ "${TRAVIS_OS_NAME}" == "osx" ]; then brew upgrade openssl >/dev/null 2>&1; fi'
script: ci/build.sh

182
CHANGES
View File

@ -3,6 +3,188 @@ that have been applied in released versions. Please see the NEWS file for
a summary of the major changes, and the ChangeLog file for a comprehensive
listing of all changes made to the code.
*5.9.4*:
IMPORTANT: SNMP over TLS and/or DTLS are not functioning properly
in this release with various versions of OpenSSL and will be fixed
in a future release.
libsnmp:
- Remove the SNMP_SWIPE_MEM() macro Remove this macro since it is not
used in the Net-SNMP code base.
- DISPLAY-HINT fixes
- Miscellanious improvements to the transports
- Handle multiple oldEngineID configuration lines
- fixes for DNS names longer than 63 characters
agent:
- Added a ignoremount configuration option for the HOST-MIB
- disallow SETs with a NULL varbind
- fix the --enable-minimalist build
apps:
- snmpset: allow SET with NULL varbind for testing
- snmptrapd: improved MySQL logging code
general:
- configure: Remove -Wno-deprecated as it is no longer needed
- miscellanious ther bug fixes, build fixes and cleanups
*5.9.3*:
security:
- These two CVEs can be exploited by a user with read-only credentials:
- CVE-2022-24805 A buffer overflow in the handling of the INDEX of
NET-SNMP-VACM-MIB can cause an out-of-bounds memory access.
- CVE-2022-24809 A malformed OID in a GET-NEXT to the nsVacmAccessTable
can cause a NULL pointer dereference.
- These CVEs can be exploited by a user with read-write credentials:
- CVE-2022-24806 Improper Input Validation when SETing malformed
OIDs in master agent and subagent simultaneously
- CVE-2022-24807 A malformed OID in a SET request to
SNMP-VIEW-BASED-ACM-MIB::vacmAccessTable can cause an
out-of-bounds memory access.
- CVE-2022-24808 A malformed OID in a SET request to
NET-SNMP-AGENT-MIB::nsLogTable can cause a NULL pointer dereference
- CVE-2022-24810 A malformed OID in a SET to the nsVacmAccessTable
can cause a NULL pointer dereference.
- To avoid these flaws, use strong SNMPv3 credentials and do not share them.
If you must use SNMPv1 or SNMPv2c, use a complex community string
and enhance the protection by restricting access to a given IP address range.
- Thanks are due to Yu Zhang of VARAS@IIE and Nanyu Zhong of VARAS@IIE for
reporting the following CVEs that have been fixed in this release, and
to Arista Networks for providing fixes.
Windows:
- WinExtDLL: Fix multiple compiler warnings
- WinExtDLL: Make long strings occupy a single line Make it easier to
look up error messages in the source code by making long strings
occupy a single source code line.
- WinExtDLL: Restore MIB-II support Make winExtDLL work on 64-bit
Windows systems") caused snmpd to skip MIB-II on 64-bit systems.
IF-MIB: Update ifTable entries even if the interface name has changed
At least on Linux a network interface index may be reused for a
network interface with a different name. Hence this patch that
enables replacing network interface information even if the network
interface name has changed.
unspecified:
- Moved transport code into a separate subdirectory in snmplib
- Snmplib: remove inline versions of container funcs".
misc:
- snmp-create-v3-user: Fix the snmpd.conf path @datadir@ is
expanded in ${datarootdir} so datarootdir must be set before
@datadir@ is used.
*5.9.2*:
security:
- These two CVEs can be exploited by a user with read-only credentials:
- CVE-2022-24805 A buffer overflow in the handling of the INDEX of
NET-SNMP-VACM-MIB can cause an out-of-bounds memory access.
- CVE-2022-24809 A malformed OID in a GET-NEXT to the nsVacmAccessTable
can cause a NULL pointer dereference.
- These CVEs can be exploited by a user with read-write credentials:
- CVE-2022-24806 Improper Input Validation when SETing malformed
OIDs in master agent and subagent simultaneously
- CVE-2022-24807 A malformed OID in a SET request to
SNMP-VIEW-BASED-ACM-MIB::vacmAccessTable can cause an
out-of-bounds memory access.
- CVE-2022-24808 A malformed OID in a SET request to
NET-SNMP-AGENT-MIB::nsLogTable can cause a NULL pointer dereference
- CVE-2022-24810 A malformed OID in a SET to the nsVacmAccessTable
can cause a NULL pointer dereference.
- To avoid these flaws, use strong SNMPv3 credentials and do not share them.
If you must use SNMPv1 or SNMPv2c, use a complex community string
and enhance the protection by restricting access to a given IP address range.
- Thanks are due to Yu Zhang of VARAS@IIE and Nanyu Zhong of VARAS@IIE for
reporting the following CVEs that have been fixed in this release, and
to Arista Networks for providing fixes.
Windows:
- WinExtDLL: Fix multiple compiler warnings
- WinExtDLL: Make long strings occupy a single line Make it easier to
look up error messages in the source code by making long strings
occupy a single source code line.
- WinExtDLL: Restore MIB-II support Make winExtDLL work on 64-bit
Windows systems") caused snmpd to skip MIB-II on 64-bit systems.
IF-MIB: Update ifTable entries even if the interface name has changed
At least on Linux a network interface index may be reused for a
network interface with a different name. Hence this patch that
enables replacing network interface information even if the network
interface name has changed.
unspecified:
- Moved transport code into a separate subdirectory in snmplib
- Snmplib: remove inline versions of container funcs".
misc:
- snmp-create-v3-user: Fix the snmpd.conf path @datadir@ is
expanded in ${datarootdir} so datarootdir must be set before
@datadir@ is used.
*5.9.1*:
General: Many bug fixes
*5.9*
snmplib:
- Add IPv6 support to DTLSUDP transport
- use new netsnmp_sockaddr_storage in netsnmp_addr_pair
- add base_transport ptr for tunneled transports
- Add support for OpenSSL 1.1.1
- Dtls: overhaul of debug
- Remove inline versions of container funcs
snmpd:
- Use ETHTOOL_GLINKSETTINGS when available Newer Linux kernels
support ETHTOOL_GLINKSETTINGS. Use it when available instead of the
older and deprecated ETHTOOL_GSET. This patch avoids that the Linux
kernel reports the following kernel warning: warning: 'snmpd' uses
legacy ethtool link settings API, link modes are only partially
reported See also https://sourceforge.net/p/net-snmp/patches/1387/.
[bvanassche: reworked this patch significantly]
- Reduce the time needed to execute "pass" scripts on BSD systems See
also https://github.com/net-snmp/net-snmp/issues/8.
- [BUG 2926]: Make it possible to set agentXPingInterval for a
subagent - register agentXPingInterval for the subagent list
handler, before it was registered for snmp - added agentxTimeout to
the subagent list handler. It's now possible to set for snmpd and
the subagent. See 'man snmpd.conf' - added agentxRetries to the
subagent list handler. See 'man snmpd.conf'. It's never used in the
subagent, but it's now following the documentation Signed-off-by:
Anders Wallin <wallinux@gmail.com>
snmptrap:
- BUG: 2899: Patch from Drew Roedersheimer to set library
engineboots/time values before sending
snmptrapd:
- Add support for the latest libmysqlclient version
libsnmp:
- Scan MIB directories in alphabetical order This guarantees that
e.g. mibs/RFC1213-MIB.txt is read before mibs/SNMPv2-MIB.txt. The
order in which these MIBs is read matters because both define
sysLocation but with different attributes.
unspecified:
- [BUG 2930]: Fix a Solaris hrSWInst crash Avoid that snmpd crashes
on Solaris when querying software packages with an empty CATEGORY
field. See also https://sourceforge.net/p/net-snmp/bugs/2930/. See
also https://sourceforge.net/p/net-snmp/patches/1390/.
FreeBSD:
- Fix first byte of IF-MIB::ifPhysAddress Don't write past the
interface name, and use temporary copy instead. This fixes the
first byte of ifPhysAddress always being 0 on FreeBSD. See also
https://sourceforge.net/p/net-snmp/code/merge-requests/20/. [
bvanassche: edited patch title / added test for malloc() result /
reduced number of free(if_name) calls ]
Win32:
- BUG: 2779541 Fixed handle leak in pass_persist.
*5.8*
snmplib:
- [BUG 3444939]: BUG: 1796886: snmplib: Avoid that

11021
ChangeLog

File diff suppressed because it is too large Load Diff

View File

@ -23,7 +23,7 @@ agentAddress udp:127.0.0.1:161
# SNMPv3 AUTHENTICATION
#
# Note that these particular settings don't actually belong here.
# They should be copied to the file /var/lib/snmp/snmpd.conf
# They should be copied to the file /var/net-snmp/snmpd.conf
# and the passwords changed, before being uncommented in that file *only*.
# Then restart the agent
@ -49,8 +49,6 @@ view systemonly included .1.3.6.1.2.1.25.1
#rocommunity public localhost
# Default access to basic system info
rocommunity public default -V systemonly
# rocommunity6 is for IPv6
rocommunity6 public default -V systemonly
# Full access from an example network
# Adjust this network address to match your local
@ -65,7 +63,7 @@ view systemonly included .1.3.6.1.2.1.25.1
#rwuser authPrivUser priv
# It's no longer typically necessary to use the full 'com2sec/group/access' configuration
# r[ow]user and r[ow]community, together with suitable views, should cover most requirements
# r[ou]user and r[ow]community, together with suitable views, should cover most requirements

24
FAQ
View File

@ -1,7 +1,7 @@
Frequently Asked Questions (FAQ) for the UCD/Net-SNMP package
=============================================================
FAQ Author: Dave Shield
Net-SNMP Version: 5.8
Net-SNMP Version: 5.9.4
Net-SNMP/UCD-SNMP Project Leader: Wes Hardaker
Email: net-snmp-coders@lists.sourceforge.net
@ -108,7 +108,7 @@ TABLE OF CONTENTS
How do I configure access control?
How do I configure SNMPv3 users?
The 'createUser' line disappears when I start the agent. Why?
What's the difference between /var/lib/snmp and /usr/share/snmp?
What's the difference between /var/net-snmp and /usr/local/share/snmp?
My new agent is ignoring the old snmpd.conf file. Why?
Where should the snmpd.conf file go?
Why am I getting "Connection refused"?
@ -699,7 +699,7 @@ How do I add a MIB to the tools?
There are two steps required to add a new MIB file to the tools.
Firstly, copy the MIB file into the appropriate location:
cp MY-MIB.txt /usr/share/snmp/mibs
cp MY-MIB.txt /usr/local/share/snmp/mibs
(which makes it available to everyone on the system)
or
mkdir $HOME/.snmp
@ -1395,7 +1395,7 @@ My traphandler script doesn't work when run like this - why not?
If this is the case, then you can specify this interpreter
explicitly as part of the trap handle directive:
traphandle default /usr/bin/perl /usr/bin/log_it
traphandle default /usr/bin/perl /usr/local/bin/log_it
In this case, it's almost certain that you'll also
need to give the full path to the traphandle script (as shown)
@ -1489,7 +1489,7 @@ OK, what should I put in snmp.conf?
string to use.
Some of these (such as MIB information), might be best put in a
shared snmp.conf file (typically /usr/share/snmp/snmp.conf or
shared snmp.conf file (typically /usr/local/share/snmp/snmp.conf or
/etc/snmp/snmp.conf) to apply to all users of the system. Others
(particularly the SNMPv3 security settings), are more likely to refer
to a particular user, and should probably go in a personal snmp.conf
@ -2663,7 +2663,7 @@ How do I configure SNMPv3 users?
createUser {myUser} MD5 {myPassword} DES
to the file /var/lib/snmp/snmpd.conf (where {myUser} and
to the file /var/net-snmp/snmpd.conf (where {myUser} and
{myPassword} are the appropriate values for username and password,
_without_ the braces!). Then re-start the snmpd agent.
@ -2672,7 +2672,7 @@ How do I configure SNMPv3 users?
net-snmp-config --create-snmpv3-user
and follow the prompts given. This will create an entry
in the /var/lib/snmp/snmpd.conf file similar to the above.
in the /var/net-snmp/snmpd.conf file similar to the above.
Then re-start the snmpd agent.
3) Make sure the agent is running, and will respond to an SNMPv3
@ -2706,16 +2706,16 @@ The 'createUser' line disappears when I start the agent. Why?
What's the difference between /var/lib/snmp and /usr/share/snmp?
----------------------------------------------------------------
What's the difference between /var/net-snmp and /usr/local/share/snmp?
---------------------------------------------------------------------
The /var/lib/snmp location is primarily used for information set
The /var/net-snmp location is primarily used for information set
during the running of the agent, which needs to be persistent between
one run of the agent and the next. Apart from "createUser" (see
the previous entry), you shouldn't need to touch this file.
All other user-provided configuration should go in the traditional
location (typically /usr/share/snmp or /etc/snmp).
location (typically /usr/local/share/snmp/snmpd.conf or /etc/snmp).
@ -2736,7 +2736,7 @@ Where should the snmpd.conf file go?
-----------------------------------
The default location for this file with the basic distribution is
/usr/share/snmp/snmpd.conf (or PREFIX/share/snmp/snmpd.conf).
/usr/local/share/snmp/snmpd.conf (or PREFIX/share/snmp/snmpd.conf).
Ready-installed versions often look for the file as /etc/snmpd.conf,
or /etc/snmp/snmpd.conf.

View File

@ -127,7 +127,7 @@ Installing the Perl/SNMP Module
(which includes other Net-SNMP specific modules as well), all of which
are located in the net-snmp/perl directory. The Perl package provides
a high level abstract interface to the functionality found in the
Net-SNMP libraries and demon applications.
Net-SNMP libraries and daemon applications.
It is recommended you install the perl modules as you build the
Net-SNMP package. The configure script can be run as follows to

View File

@ -6,25 +6,24 @@
VPATH = @srcdir@
SUBDIRS = snmplib @MAINSUBS@
SUBDIRDEPS = sedscript
FTSUBDIRS = @FTMAINSUBS@ snmplib
TESTDIRS = testing
CPP = @CPP@ \
-Iinclude -I$(srcdir)/include -I$(srcdir)/agent/mibgroup -I. -I$(srcdir) \
-I$(srcdir)/include -I. \
-DDONT_INC_STRUCTS -DBINDIR=$(bindir) \
$(EXTRACPPFLAGS)
INSTALLHEADERS=version.h net-snmp-features.h
INCLUDESUBDIR=system
INCLUDESUBDIRHEADERS= aix.h bsd.h bsdi3.h bsdi4.h bsdi.h cygwin.h \
darwin.h darwin7.h darwin8.h darwin9.h darwin10.h darwin11.h darwin12.h \
darwin13.h darwin14.h darwin15.h darwin16.h darwin17.h \
dragonfly.h dynix.h \
darwin.h dragonfly.h dynix.h \
freebsd2.h freebsd3.h freebsd4.h freebsd5.h freebsd6.h \
freebsd7.h freebsd8.h freebsd9.h freebsd10.h freebsd11.h \
freebsd12.h freebsd.h kfreebsd.h \
freebsd12.h freebsd13.h freebsd14.h freebsd.h \
generic.h \
hpux.h irix.h linux.h mingw32.h mingw32msvc.h mips.h \
hpux.h irix.h kfreebsd.h linux.h mingw32.h mingw32msvc.h mips.h \
netbsd.h nto-qnx6.h osf5.h \
openbsd.h openbsd6.h openbsd5.h openbsd4.h \
solaris2.3.h solaris2.4.h solaris2.5.h solaris2.6.h \
@ -35,6 +34,7 @@ INSTALLBUILTHEADERS=include/net-snmp/net-snmp-config.h
INSTALLBUILTINCLUDEHEADERS=@FEATUREHEADERS@
INSTALLBINSCRIPTS=net-snmp-config net-snmp-create-v3-user
INSTALLUCDHEADERS=ucd-snmp-config.h version.h mib_module_config.h
INSTALL_PKGCONFIG=netsnmp.pc netsnmp-agent.pc
#
# other install rules.
@ -113,8 +113,8 @@ agentxtrap snmptrapd: @FEATURETARGS@
#
# local build rules
#
sedscript: sedscript.in include/net-snmp/net-snmp-config.h $(srcdir)/agent/mibgroup/mibdefs.h
$(CPP) $(CPPFLAGS) $(srcdir)/sedscript.in | egrep '^s[/#]' | sed 's/REMOVEME//g;s# */#/#g;s/ *#/#/g;s#/ *#/#g;s/# g/#g/;' > sedscript
sedscript: $(srcdir)/sedscript.in include/net-snmp/net-snmp-config.h $(srcdir)/agent/mibgroup/mibdefs.h
$(CPP) -I$(srcdir) -Iinclude $(srcdir)/sedscript.in | $(EGREP) '^s[/#]' | sed 's/REMOVEME//g;s# */#/#g;s/ *#/#/g;s#/ *#/#g;s/# g/#g/;' > sedscript
echo 's/VERSIONINFO/$(VERSION)/g' >> sedscript
echo 's#DATADIR#$(datadir)#g' >> sedscript
echo 's#LIBDIR#$(libdir)#g' >> sedscript
@ -122,14 +122,14 @@ sedscript: sedscript.in include/net-snmp/net-snmp-config.h $(srcdir)/agent/mibgr
echo 's#PERSISTENT_DIRECTORY#$(PERSISTENT_DIRECTORY)#g' >> sedscript
echo 's#SYSCONFDIR#@sysconfdir@#g' >> sedscript
EXAMPLE.conf: sedscript EXAMPLE.conf.def
EXAMPLE.conf: sedscript $(srcdir)/EXAMPLE.conf.def
$(SED) -f sedscript $(srcdir)/EXAMPLE.conf.def > EXAMPLE.conf
docs: docsdir
docsdir: docsdox
docsdox: doxygen.conf
docsdox: $(srcdir)/doxygen.conf
srcdir=$(srcdir) VERSION=$(VERSION) doxygen $(srcdir)/doxygen.conf
net-snmp-config-x: net-snmp-config
@ -173,14 +173,14 @@ OTHERCLEANTODOS=perlclean @PYTHONCLEANTARGS@ cleanfeatures perlcleanfeatures pyt
#
# override LD_RUN_PATH to avoid dependencies on the build directory
perlmodules: perlmakefiles subdirs
@(cd perl ; $(MAKE) LD_RUN_PATH="") ; \
@(cd perl ; $(MAKE) LD_RUN_PATH="$(libdir):`$(PERL) -e 'use Config; print qq($$Config{archlibexp}/CORE);'`") ; \
if test $$? != 0 ; then \
exit 1 ; \
fi
perlmakefiles: perl/Makefile net-snmp-config-x
perl/Makefile: perl/Makefile.PL
perl/Makefile: perl/Makefile.PL subdirs
dir=`pwd` && \
cd perl && \
if false; then \
@ -275,6 +275,7 @@ configclean: makefileclean
libtool include/net-snmp/net-snmp-config.h \
net-snmp-config net-snmp-config-x configure-summary \
net-snmp-create-v3-user net-snmp-create-v3-user-x
rm -f *.pc
rm -f mibs/.index
rm -f include/net-snmp/agent/mib_module_config.h \
include/net-snmp/agent/agent_module_config.h \
@ -454,6 +455,16 @@ perlcalloccheck:
dist: tar
rpm: dist
rpmtopdir=$$PWD/rpmbuilddir && \
for d in BUILD RPMS SOURCES SPECS SRPMS; do \
mkdir -p $${rpmtopdir}/$$d; \
done && \
cp net-snmp-$(VERSION).tar.gz $${rpmtopdir}/SOURCES && \
MAKE="$(MAKE)" rpmbuild --define="%_topdir $${rpmtopdir}" \
-ba dist/net-snmp.spec && \
find $${rpmtopdir} -name '*rpm'
FAQ.html:
local/FAQ2HTML FAQ

View File

@ -23,21 +23,18 @@ $(FEATUREFILE): $(FTOBJS) $(top_builddir)/include/net-snmp/feature-details.h
cat $(FTOBJS) > $(FEATUREFILE).in
$(FEATUREPROCESS) $(FEATUREFILE) $(top_builddir)/include/net-snmp/feature-details.h @FEATURE_REMOVE_FLAGS@ @FEATURE_ADD_FLAGS@
ftsubdirs:
@if test "$(FTSUBDIRS)" != ""; then \
SUBDIRS="$(FTSUBDIRS)" ; \
else \
SUBDIRS="$(SUBDIRS)" ; \
fi ; \
if test "$$SUBDIRS" != ""; then \
it="$$SUBDIRS" ; \
for i in $$it ; do \
echo "making features in `pwd`/$$i"; \
( cd $$i ; $(MAKE) features ) ; \
if test $$? != 0 ; then \
exit 1 ; \
fi \
done \
fi
@if test "$(FTSUBDIRS)" != ""; then \
SUBDIRS="$(FTSUBDIRS)"; \
else \
SUBDIRS="$(SUBDIRS)"; \
fi; \
echo "$(PWD): making feature files in $${SUBDIRS}"; \
for i in $${SUBDIRS}; do \
test "$$i" != "" || continue; \
echo "making features in `pwd`/$$i"; \
(cd "$$i" && $(MAKE) features) || exit "$$?"; \
done; \
echo "$(PWD): finished making feature files."
.PHONY: cleanfeatures cleanfeaturessubdirs
cleanfeatures: cleanfeaturessubdirs
@ -70,7 +67,7 @@ cleanfeaturessubdirs:
> $(top_builddir)/include/net-snmp/feature-details.h
$(FEATURECHECK) --feature-global $(top_builddir)/include/net-snmp/feature-details.h $(mysubdir) $< $@ $(CC) -E $(CPPFLAGS) $(CFLAGS) -c
subdirs:
subdirs: $(SUBDIRDEPS)
@if test "$(SUBDIRS)" != ""; then \
it="$(SUBDIRS)" ; \
for i in $$it ; do \
@ -85,12 +82,14 @@ subdirs:
# installlibs handles local, ucd and subdir libs. need to do subdir libs
# before bins, sinze those libs may be needed for successful linking
install: installlocalheaders @installucdheaders@ \
installlibs \
installlocalbin installlocalsbin \
installlibs install_pkgconfig \
installlocalbin installlocalsbin \
installsubdirs $(OTHERINSTALL)
uninstall: uninstalllibs uninstallbin uninstallsbin uninstallheaders \
uninstallsubdirs $(OTHERUNINSTALL)
uninstall: uninstalllibs uninstall_pkgconfig \
uninstallbin uninstallsbin \
uninstallheaders \
uninstallsubdirs $(OTHERUNINSTALL)
installprogs: installbin installsbin
@ -287,6 +286,26 @@ uninstalllibs:
done \
fi
#
# pkg-config files
#
install_pkgconfig: $(INSTALL_PKGCONFIG)
@if test "x$(INSTALL_PKGCONFIG)" != x; then \
$(SHELL) $(top_srcdir)/mkinstalldirs $(INSTALL_PREFIX)$(libdir)/pkgconfig; \
for i in $(INSTALL_PKGCONFIG); do \
echo "installing $$i in $(INSTALL_PREFIX)$(libdir)/pkgconfig"; \
done; \
$(INSTALL_DATA) $(INSTALL_PKGCONFIG) $(INSTALL_PREFIX)$(libdir)/pkgconfig; \
fi
uninstall_pkgconfig:
@if test "x$(INSTALL_PKGCONFIG)" != x; then \
for i in $(INSTALL_PKGCONFIG); do \
echo "removing $$i from $(INSTALL_PREFIX)$(libdir)/pkgconfig"; \
$(UNINSTALL) $(INSTALL_PREFIX)$(libdir)/pkgconfig/$$i;\
done; \
fi
#
# normal bin binaries
#
@ -416,13 +435,17 @@ lint:
#
depend: dependdirs
@if test -f Makefile.depend ; then \
makedepend `echo $(CPPFLAGS) | sed 's/-f[-a-z]*//g'` -o .lo $(srcdir)/*.c $(srcdir)/*/*.c ; \
makedepend `echo $(CPPFLAGS) | \
awk '{for(i=1;i<=NF;i++) if (match(substr($$i,1,2), "-[ID]")) print $$i}'` \
-o .lo $(srcdir)/*.c $(srcdir)/*/*.c ; \
fi
nosysdepend: nosysdependdirs
@if test -f Makefile.depend ; then \
makedepend `echo $(CPPFLAGS) | sed 's/-f[-a-z]*//g'` -o .lo $(srcdir)/*.c $(srcdir)/*/*.c ; \
makedepend `echo $(CPPFLAGS) | \
awk '{for(i=1;i<=NF;i++) if (match(substr($$i,1,2), "-[ID]")) print $$i}'` \
-o .lo $(srcdir)/*.c $(srcdir)/*/*.c ; \
$(PERL) -n -i.bak $(top_srcdir)/makenosysdepend.pl Makefile ; \
fi

View File

@ -28,7 +28,6 @@ man8dir = $(mandir)/man8
snmplibdir = $(datadir)/snmp
mibdir = $(snmplibdir)/mibs
persistentdir = @PERSISTENT_DIRECTORY@
sysconfdir = @sysconfdir@
DESTDIR = @INSTALL_PREFIX@
INSTALL_PREFIX = $(DESTDIR)
@ -70,7 +69,7 @@ LINKCC = @LINKCC@
# last update, increment current (+5), and set age and revision to 0. Stop.
#
# - If any interfaces have been added since the last public release, then
# increment current and age, and set revision to 0. Stop.
# increment current AND age, and set revision to 0. Stop.
#
# - If the source code has changed at all since the last update,
# then increment revision (c:r:a becomes c:r+1:a).
@ -82,12 +81,12 @@ LINKCC = @LINKCC@
# 5.3 was at 10, 5.4 is at 15, ... This leaves some room for needed
# changes for past releases if absolutely necessary.
#
# Most recent change: 35 for release 5.8
LIBCURRENT = 35
LIBAGE = 0
LIBREVISION = 0
# Most recent change: 40 for the v5.8.1 release.
LIBCURRENT = 42
LIBAGE = 2
LIBREVISION = 1
LIB_LD_CMD = $(LIBTOOL) --mode=link $(LINKCC) $(CFLAGS) -rpath $(libdir) -version-info $(LIBCURRENT):$(LIBREVISION):$(LIBAGE) -o
LIB_LD_CMD = $(LIBTOOL) --mode=link $(LINKCC) $(CFLAGS) -rpath $(libdir) -version-info $(LIBCURRENT):$(LIBREVISION):$(LIBAGE) @LD_NO_UNDEFINED@ -o
LIB_EXTENSION = la
LIB_VERSION =
LIB_LDCONFIG_CMD = $(LIBTOOL) --mode=finish $(INSTALL_PREFIX)$(libdir)
@ -100,7 +99,7 @@ RANLIB = :
.c.lo:
$(LIBTOOL) --mode=compile $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
.rc.lo:
$(LIBTOOL) --mode=compile --tag=CC windres -o $@ -i $<
$(LIBTOOL) --mode=compile --tag=RC @RC@ -o $@ -i $<
# include paths
#

115
NEWS
View File

@ -3,6 +3,119 @@ Please see the CHANGES file for a more detailed list of specific bugs/patches
that have been fixed/applied, and the ChangeLog file for a comprehensive
listing of all changes made to the code.
*5.9.4*:
IMPORTANT: SNMP over TLS and/or DTLS are not functioning properly
in this release with various versions of OpenSSL and will be fixed
in a future release.
libsnmp:
- Remove the SNMP_SWIPE_MEM() macro Remove this macro since it is not
used in the Net-SNMP code base.
- DISPLAY-HINT fixes
- Miscellanious improvements to the transports
- Handle multiple oldEngineID configuration lines
- fixes for DNS names longer than 63 characters
agent:
- Added a ignoremount configuration option for the HOST-MIB
- disallow SETs with a NULL varbind
- fix the --enable-minimalist build
apps:
- snmpset: allow SET with NULL varbind for testing
- snmptrapd: improved MySQL logging code
general:
- configure: Remove -Wno-deprecated as it is no longer needed
- miscellanious ther bug fixes, build fixes and cleanups
*5.9.3*:
security:
- These two CVEs can be exploited by a user with read-only credentials:
- CVE-2022-24805 A buffer overflow in the handling of the INDEX of
NET-SNMP-VACM-MIB can cause an out-of-bounds memory access.
- CVE-2022-24809 A malformed OID in a GET-NEXT to the nsVacmAccessTable
can cause a NULL pointer dereference.
- These CVEs can be exploited by a user with read-write credentials:
- CVE-2022-24806 Improper Input Validation when SETing malformed
OIDs in master agent and subagent simultaneously
- CVE-2022-24807 A malformed OID in a SET request to
SNMP-VIEW-BASED-ACM-MIB::vacmAccessTable can cause an
out-of-bounds memory access.
- CVE-2022-24808 A malformed OID in a SET request to
NET-SNMP-AGENT-MIB::nsLogTable can cause a NULL pointer dereference
- CVE-2022-24810 A malformed OID in a SET to the nsVacmAccessTable
can cause a NULL pointer dereference.
- To avoid these flaws, use strong SNMPv3 credentials and do not share them.
If you must use SNMPv1 or SNMPv2c, use a complex community string
and enhance the protection by restricting access to a given IP address range.
- Thanks are due to Yu Zhang of VARAS@IIE and Nanyu Zhong of VARAS@IIE for
reporting the following CVEs that have been fixed in this release, and
to Arista Networks for providing fixes.
misc:
- Snmp-create-v3-user: Fix the snmpd.conf path @datadir@ is
expanded in ${datarootdir} so datarootdir must be set before
@datadir@ is used.
general: Many bug fixes
*5.9.2*:
security:
- These two CVEs can be exploited by a user with read-only credentials:
- CVE-2022-24805 A buffer overflow in the handling of the INDEX of
NET-SNMP-VACM-MIB can cause an out-of-bounds memory access.
- CVE-2022-24809 A malformed OID in a GET-NEXT to the nsVacmAccessTable
can cause a NULL pointer dereference.
- These CVEs can be exploited by a user with read-write credentials:
- CVE-2022-24806 Improper Input Validation when SETing malformed
OIDs in master agent and subagent simultaneously
- CVE-2022-24807 A malformed OID in a SET request to
SNMP-VIEW-BASED-ACM-MIB::vacmAccessTable can cause an
out-of-bounds memory access.
- CVE-2022-24808 A malformed OID in a SET request to
NET-SNMP-AGENT-MIB::nsLogTable can cause a NULL pointer dereference
- CVE-2022-24810 A malformed OID in a SET to the nsVacmAccessTable
can cause a NULL pointer dereference.
- To avoid these flaws, use strong SNMPv3 credentials and do not share them.
If you must use SNMPv1 or SNMPv2c, use a complex community string
and enhance the protection by restricting access to a given IP address range.
- Thanks are due to Yu Zhang of VARAS@IIE and Nanyu Zhong of VARAS@IIE for
reporting the following CVEs that have been fixed in this release, and
to Arista Networks for providing fixes.
misc:
- Snmp-create-v3-user: Fix the snmpd.conf path @datadir@ is
expanded in ${datarootdir} so datarootdir must be set before
@datadir@ is used.
general: Many bug fixes
*5.9.1*:
General: Many bug fixes
*5.9*
snmplib:
- Add IPv6 support to DTLSUDP transport CHANGES: snmplib: use new
netsnmp_sockaddr_storage in netsnmp_addr_pair CHANGES: snmplib: add
base_transport ptr for tunneled transports
snmpd:
- Security vulnerabilty in the ping MIB reported by Christopher Ertl
from Microsoft fixed
- Changing to a different uid/gid can only be done once
- The extend mib is now read-only by default
snmptrap:
- BUG: 2899: Patch from Drew Roedersheimer to set library
engineboots/time values before sending
unspecified:
- Add pkg-config support for building applications and sub-agents Use
the netsnmp package when building Net-SNMP applications. Use the
netsnmp-agent package when building Net-SNMP subagents.
*5.8*
snmplib:
- TLS/DTLS fixes
@ -1123,7 +1236,7 @@ UCD-SNMP NEWS:
Ports:
- HPUX 11
- Dynix/PTX 4.4
- The snmpd demon can properly run as a windows service
- The snmpd daemon can properly run as a windows service
*4.2.3*
New:

121
README
View File

@ -1,4 +1,4 @@
README file for net-snmp Version: 5.8
README file for net-snmp Version: 5.9.4
DISCLAIMER
@ -245,117 +245,8 @@ CLOSING
THANKS
The following people have contributed various patches and
improvements. To them we owe our deepest thanks (and you do too!):
Wes Hardaker <hardaker@users.sourceforge.net>
Steve Waldbusser <waldbusser@nextbeacon.com>
Dan A. Dickey <ddickey@transition.com>
Dave Shield <D.T.Shield@csc.liv.ac.uk>
Giovanni S. Marzot <gmarzot@nortelnetworks.com>
Niels Baggesen <nba@users.sourceforge.net>
Simon Leinen <simon@limmat.switch.ch>
David T. Perkins <dperkins@dsperkins.com>
Mike Perik <mikep@crt.com>
Sanjai Narain <narain@thumper.bellcore.com>
francus@metsny.delphi.com
Gary Palmer <gpalmer@freebsd.org>
Marc G. Fournier <scrappy@ki.net>
Gary A. Hayward <gah@bellcore.com>
Jennifer Bray <jbray@origin-at.co.uk>
Philip Guenther <guenther@gac.edu>
Elwyn B Davies <edavies@origin-at.co.uk>
Simon Burge <simonb@telstra.com.au>
David Paul Zimmerman <dpz@apple.com>
Alan Batie <batie@aahz.jf.intel.com>
Michael Douglass <mikedoug@texas.net>
Ted Rule <Ted_Rule@FLEXTECH.CO.UK>
Craig Bevins <craigb@bitcom.net.au>
Arther Hyun <arthur@psi.com>
Cristian Estan <Cristian.Estan@net.utcluj.ro>
Eugene Polovnikov <eugen@rd.zgik.zaporizhzhe.ua>
Jakob Ellerstedt <jakob@dynarc.se>
Michael J. Slifcak <slif@bellsouth.net>
Jonas Olsson <jolsson@erv.ericsson.se>
James H. Young <sysjhy@gsu.edu>
Jeff Johnson <jbj@redhat.com>
Markku Laukkanen <marlaukk@stybba.ntc.nokia.com>
Derek Simkowiak <dereks@kd-dev.com>
David F. Newman <dnewman@epnet.com>
Nick Amato <naamato@merit.edu>
Mike Baer <baerm@calweb.com>
Patrick Lawrence <pjlawrence@ucdavis.edu>
Russ Mundy <mundy@tislabs.com>
Olafur Gudmundsson <ogud@tislabs.com>
David Reeder <dreeder@tislabs.com>
Ed Lewis <lewis@tislabs.com>
Bill Babson <wbabson@tislabs.com>
Chris Smith <csmith@platform.com>
Mike Michaud <mikemichaud@earthlink.net>
Andy Hood <ahood@westpac.com.au>
Robert Story <rstory@freesnmp.com>
Bert Driehuis <driehuis@playbeing.org>
Juergen Schoenwaelder <schoenw@ibr.cs.tu-bs.de>
Frank Strauss <strauss@ibr.cs.tu-bs.de>
Ragnar Kjørstad <ucd@ragnark.vestdata.no>
Jochen Kmietsch <jochen.kmietsch@tu-clausthal.de>
Jun-ichiro itojun Hagino <itojun@iijlab.net>
John L Villalovos <john.l.villalovos@intel.com>
Christoph Mammitzsch <Christoph.Mammitzsch@tu-clausthal.de>
Arne Oesleboe <Arne.Oesleboe@item.ntnu.no>
Jeff Cours <jeff@ultradns.com>
Karl Schilke <karl_schilke@eli.net>
John Naylon <jbpn@cambridgebroadband.com>
Ken Hornstein <kenh@cmf.nrl.navy.mil>
Martin Oldfield <m@mail.tc>
Harrie Hazewinkel <harrie@users.sourceforge.net>
Mark Ferlatte <ferlatte@users.sourceforge.net>
Marus Meissner <marcusmeissner@users.sourceforge.net>
Stephan Wenzer <stephanwenzel@users.sourceforge.net>
Ron Mevissen <ron.mevissen@eed.ericsson.se>
T.J. Mather <tjmather@tjmather.com>
Craig Setera <seterajunk@charter.net>
Katsuhisa ABE <abekatsu@cysols.com>
Axel Kittenberger <Axel.Kittenberger@maxxio.com>
Johannes Schmidt-Fischer <jsf@InterFace-AG.com>
Jeffrey Watson <nostaw@users.sourceforge.net>
Bruce Shaw <Bruce.Shaw@gov.ab.ca>
Stefan Radman <sradman@users.sourceforge.net>
Stephen J. Friedl <sjfriedl@users.sourceforge.net>
Alex Burger <alex_b@users.sourceforge.net>
Christophe Varoqui <ext.devoteam.varoqui@sncf.fr>
Srikanth Pindiproli <sripindip@users.sourceforge.net>
Kevin Graham <kevgraham7@users.sourceforge.net>
Xiaofeng Ling <xfling@users.sourceforge.net>
Brandon Knitter <knitterb@bl...>
Andrew Findlay <andrew.findlay@skills-1st.co.uk>
Ron Tabor <rtabor@users.sourceforge.net>
Peter Warasin <drg-r3@users.sourceforge.net>
Bob Rowlands <robert.rowlands@sun.com>
Peter Hicks <Peter.Hicks@POGGS.CO.UK>
Andy Smith <wasmith32@earthlink.net>
Nick Barkas <nbarkas@users.sourceforge.net>
Noah Friedman <friedman@prep.ai.mit.edu>
Geert De Peuter <geert@depeuter.org>
Magnus Fromreide <magfr@lysator.liu.se>
Marcus Meissner <marcusmeissner@users.sourceforge.net>
Andrew Rucker Jones <arjones@users.sourceforge.net>
Dai.H. <dg-f@users.sourceforge.net>
Thomas Anders <tanders@users.sourceforge.net>
Vladislav Bogdanov <slava_reg@nsys.by>
Peter Martin <pnmartin@users.sourceforge.net>
Thomas Lackey <telackey@users.sourceforge.net>
Joe Buehler <jbuehler@spirentcom.com>
Anders Persson <apersson@users.sourceforge.net>
Rojer <rojer@users.sourceforge.net>
Bart Van Assche <bart.vanassche@gmail.com>
Pablo Carboni <pcarboni@users.sourceforge.net>
Bill Fenner <fenner@gmail.com>
Brian Sipos <bsiposrkf@users.sourceforge.net>
Eugene M. Kim <eugene.kim@ntti3.com>
Anders Wallin <wallinux@gmail.com>
Andrew Stormont <andy-js@users.sourceforge.net>
Keith Mendoza <keith@icei.org>
We've probably forgotten people on this list. Let us know if you've
contributed code and we've left you out.
This project has been graciously supported by a long list of people
(too long to keep roperly up to date). To them we owe our deepest
thanks (and you do too!). Please see the git log or ChangeLog file,
where the core developers are careful to have (hopefully always)
pointed out where patches have come from.

File diff suppressed because it is too large Load Diff

7
aclocal.m4 vendored
View File

@ -1,7 +1,7 @@
# generated automatically by aclocal 1.11 -*- Autoconf -*-
# generated automatically by aclocal 1.16 -*- Autoconf -*-
# Copyright (C) 1996-2018 Free Software Foundation, Inc.
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@ -11,6 +11,7 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
m4_include([m4/ac_add_search_path.m4])
m4_include([m4/ac_msg_cache.m4])
m4_include([m4/ac_msg_module_dbg.m4])

File diff suppressed because it is too large Load Diff

View File

@ -15,7 +15,7 @@ mysubdir=agent
#
# what to install
#
SUBDIRS=helpers mibgroup
SUBDIRS=helpers
FTSUBDIRS=mibgroup helpers
INSTALLSBINPROGS= @SNMPD@
@ -273,9 +273,12 @@ FTAGENTOBJS=snmpd.ft @other_ftagentobjs@
#
# Define OBJS and LOBJS for clean target (just this directory)
#
OBJS = $(LIBAGENTOBJS) $(AGENTOBJS) mib_modules.o auto_nlist.o
LOBJS = $(LLIBAGENTOBJS) $(LAGENTOBJS) mib_modules.lo auto_nlist.lo
FTOBJS = $(LLIBAGENTFTS) $(FTAGENTOBJS) mib_modules.ft auto_nlist.ft
OBJS = $(LIBAGENTOBJS) $(MIBOBJS) $(AGENTOBJS) \
mib_modules.o auto_nlist.o
LOBJS = $(LLIBAGENTOBJS) $(LMIBOBJS) $(LAGENTOBJS) \
mib_modules.lo auto_nlist.lo
FTOBJS = $(LLIBAGENTFTS) $(FTMIBOBJS) $(FTAGENTOBJS) \
mib_modules.ft auto_nlist.ft
FEATUREFILE = $(top_builddir)/include/net-snmp/agent/features.h
@ -300,11 +303,11 @@ snmpd$(EXEEXT): ${LAGENTOBJS} $(USELIBS) $(AGENTLIB) $(HELPERLIB) $(MIBLIB) $(LI
$(LINK) $(CFLAGS) -o $@ ${LAGENTOBJS} ${LDFLAGS} ${OUR_AGENT_LIBS}
libnetsnmpagent.$(LIB_EXTENSION)$(LIB_VERSION): ${LLIBAGENTOBJS} $(USELIBS)
$(LIB_LD_CMD) $(AGENTLIB) ${LLIBAGENTOBJS} $(USELIBS) ${LAGENTLIBS} @LD_NO_UNDEFINED@ $(LDFLAGS) $(PERLLDOPTS_FOR_LIBS) $(LIB_LD_LIBS) @AGENTLIBS@
$(LIB_LD_CMD) $(AGENTLIB) ${LLIBAGENTOBJS} $(USELIBS) ${LAGENTLIBS} $(LDFLAGS) $(PERLLDOPTS_FOR_LIBS) @AGENTLIBS@
$(RANLIB) $(AGENTLIB)
libnetsnmpmibs.$(LIB_EXTENSION)$(LIB_VERSION): ${LMIBOBJS} $(AGENTLIB) $(USELIBS)
$(LIB_LD_CMD) $(MIBLIB) ${LMIBOBJS} $(AGENTLIB) $(USELIBS) @LD_NO_UNDEFINED@ $(LDFLAGS) ${LMIBLIBS} $(PERLLDOPTS_FOR_LIBS) $(LIB_LD_LIBS) @AGENTLIBS@
libnetsnmpmibs.$(LIB_EXTENSION)$(LIB_VERSION): ${LMIBOBJS} $(AGENTLIB) $(USELIBS) subdirs
$(LIB_LD_CMD) $(MIBLIB) ${LMIBOBJS} $(AGENTLIB) $(USELIBS) $(LDFLAGS) ${LMIBLIBS} $(PERLLDOPTS_FOR_LIBS) @AGENTLIBS@
$(RANLIB) $(MIBLIB)
agentlib: $(AGENTLIB)

View File

@ -18,7 +18,7 @@
#include <sys/types.h>
#if HAVE_STRING_H
#ifdef HAVE_STRING_H
#include <string.h>
#endif
@ -27,9 +27,9 @@
#include <net-snmp/agent/bulk_to_next.h>
netsnmp_feature_child_of(agent_handler, libnetsnmpagent)
netsnmp_feature_child_of(agent_handler, libnetsnmpagent);
netsnmp_feature_child_of(handler_mark_requests_as_delegated, agent_handler)
netsnmp_feature_child_of(handler_mark_requests_as_delegated, agent_handler);
static netsnmp_mib_handler *_clone_handler(netsnmp_mib_handler *it);
@ -667,7 +667,7 @@ netsnmp_call_next_handler(netsnmp_mib_handler *current,
*
* @return Returns SNMPERR_SUCCESS or SNMP_ERR_* error code.
*/
netsnmp_feature_child_of(netsnmp_call_next_handler_one_request,netsnmp_unused)
netsnmp_feature_child_of(netsnmp_call_next_handler_one_request,netsnmp_unused);
#ifndef NETSNMP_FEATURE_REMOVE_NETSNMP_CALL_NEXT_HANDLER_ONE_REQUEST
NETSNMP_INLINE int
netsnmp_call_next_handler_one_request(netsnmp_mib_handler *current,
@ -806,56 +806,51 @@ netsnmp_handler_registration_dup(netsnmp_handler_registration *reginfo)
{
netsnmp_handler_registration *r = NULL;
if (reginfo == NULL) {
if (reginfo == NULL)
return NULL;
}
r = (netsnmp_handler_registration *) calloc(1,
sizeof
(netsnmp_handler_registration));
if (r != NULL) {
r->modes = reginfo->modes;
r->priority = reginfo->priority;
r->range_subid = reginfo->range_subid;
r->timeout = reginfo->timeout;
r->range_ubound = reginfo->range_ubound;
r->rootoid_len = reginfo->rootoid_len;
if (reginfo->handlerName != NULL) {
r->handlerName = strdup(reginfo->handlerName);
if (r->handlerName == NULL) {
netsnmp_handler_registration_free(r);
return NULL;
}
}
if (reginfo->contextName != NULL) {
r->contextName = strdup(reginfo->contextName);
if (r->contextName == NULL) {
netsnmp_handler_registration_free(r);
return NULL;
}
}
if (reginfo->rootoid != NULL) {
r->rootoid =
snmp_duplicate_objid(reginfo->rootoid, reginfo->rootoid_len);
if (r->rootoid == NULL) {
netsnmp_handler_registration_free(r);
return NULL;
}
}
r->handler = netsnmp_handler_dup(reginfo->handler);
if (r->handler == NULL) {
netsnmp_handler_registration_free(r);
return NULL;
}
r = calloc(1, sizeof(netsnmp_handler_registration));
if (!r)
return r;
r->modes = reginfo->modes;
r->priority = reginfo->priority;
r->range_subid = reginfo->range_subid;
r->timeout = reginfo->timeout;
r->range_ubound = reginfo->range_ubound;
r->rootoid_len = reginfo->rootoid_len;
if (reginfo->handlerName != NULL) {
r->handlerName = strdup(reginfo->handlerName);
if (r->handlerName == NULL)
goto err;
}
if (reginfo->contextName != NULL) {
r->contextName = strdup(reginfo->contextName);
if (r->contextName == NULL)
goto err;
}
if (reginfo->rootoid != NULL) {
/*
* + 1 to make the following code safe:
* reginfo->rootoid[reginfo->rootoid_len++] = 0;
* See also netsnmp_scalar_helper_handler().
*/
r->rootoid = malloc((reginfo->rootoid_len + 1) * sizeof(oid));
if (r->rootoid == NULL)
goto err;
memcpy(r->rootoid, reginfo->rootoid,
reginfo->rootoid_len * sizeof(oid));
}
r->handler = netsnmp_handler_dup(reginfo->handler);
if (r->handler == NULL)
goto err;
return r;
err:
netsnmp_handler_registration_free(r);
return NULL;
}

View File

@ -10,26 +10,26 @@
#include <net-snmp/net-snmp-config.h>
#include <net-snmp/net-snmp-features.h>
#include <signal.h>
#if HAVE_STRING_H
#ifdef HAVE_STRING_H
#include <string.h>
#endif
#if HAVE_STDLIB_H
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#include <sys/types.h>
#include <stdio.h>
#include <fcntl.h>
#if TIME_WITH_SYS_TIME
#ifdef TIME_WITH_SYS_TIME
# include <sys/time.h>
# include <time.h>
#else
# if HAVE_SYS_TIME_H
# ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
# else
# include <time.h>
# endif
#endif
#if HAVE_NETINET_IN_H
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
@ -49,9 +49,9 @@
#include "agentx/client.h"
#endif
netsnmp_feature_child_of(agent_index_all, libnetsnmpagent)
netsnmp_feature_child_of(agent_index_all, libnetsnmpagent);
netsnmp_feature_child_of(remove_index, agent_index_all)
netsnmp_feature_child_of(remove_index, agent_index_all);
/*
* Initial support for index allocation
@ -454,7 +454,7 @@ register_index(netsnmp_variable_list * varbind, int flags,
* Release an allocated index,
* to allow it to be used elsewhere
*/
netsnmp_feature_child_of(release_index,netsnmp_unused)
netsnmp_feature_child_of(release_index,netsnmp_unused);
#ifndef NETSNMP_FEATURE_REMOVE_RELEASE_INDEX
int
release_index(netsnmp_variable_list * varbind)
@ -597,7 +597,7 @@ unregister_index(netsnmp_variable_list * varbind, int remember,
return SNMP_ERR_NOERROR;
}
netsnmp_feature_child_of(unregister_indexes,netsnmp_unused)
netsnmp_feature_child_of(unregister_indexes,netsnmp_unused);
#ifndef NETSNMP_FEATURE_REMOVE_UNREGISTER_INDEXES
int
unregister_string_index(oid * name, size_t name_len, char *cp)
@ -704,7 +704,7 @@ dump_idx_registry(void)
}
}
netsnmp_feature_child_of(count_indexes, netsnmp_unused)
netsnmp_feature_child_of(count_indexes, netsnmp_unused);
#ifndef NETSNMP_FEATURE_REMOVE_UNUSED
unsigned long
count_indexes(oid * name, size_t namelen, int include_unallocated)

View File

@ -10,15 +10,15 @@
#include <net-snmp/net-snmp-config.h>
#include <net-snmp/net-snmp-features.h>
#if HAVE_SYS_PARAM_H
#ifdef HAVE_SYS_PARAM_H
#include <sys/param.h>
#else
#include <sys/types.h>
#endif
#if HAVE_STDLIB_H
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#if HAVE_STRING_H
#ifdef HAVE_STRING_H
#include <string.h>
#else
#include <strings.h>
@ -27,36 +27,36 @@
#include <ctype.h>
#include <errno.h>
#if TIME_WITH_SYS_TIME
#ifdef TIME_WITH_SYS_TIME
# include <sys/time.h>
# include <time.h>
#else
# if HAVE_SYS_TIME_H
# ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
# else
# include <time.h>
# endif
#endif
#if HAVE_NETINET_IN_H
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
#if HAVE_NETINET_IN_SYSTM_H
#ifdef HAVE_NETINET_IN_SYSTM_H
#include <netinet/in_systm.h>
#endif
#if HAVE_NETINET_IP_H
#ifdef HAVE_NETINET_IP_H
#include <netinet/ip.h>
#endif
#ifdef NETSNMP_ENABLE_IPV6
#if HAVE_NETINET_IP6_H
#ifdef HAVE_NETINET_IP6_H
#include <netinet/ip6.h>
#endif
#endif
#if HAVE_SYS_QUEUE_H
#ifdef HAVE_SYS_QUEUE_H
#include <sys/queue.h>
#endif
#if HAVE_SYS_SOCKET_H
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#if HAVE_SYS_SOCKETVAR_H
#ifdef HAVE_SYS_SOCKETVAR_H
#ifndef dynix
#include <sys/socketvar.h>
#else
@ -64,31 +64,31 @@
#endif
#endif
#endif
#if HAVE_SYS_STREAM_H
#ifdef HAVE_SYS_STREAM_H
# ifdef sysv5UnixWare7
# define _KMEMUSER 1 /* <sys/stream.h> needs this for queue_t */
# endif
#include <sys/stream.h>
#endif
#if HAVE_NET_ROUTE_H
#ifdef HAVE_NET_ROUTE_H
#include <net/route.h>
#endif
#if HAVE_NETINET_IP_VAR_H
#ifdef HAVE_NETINET_IP_VAR_H
#include <netinet/ip_var.h>
#endif
#ifdef NETSNMP_ENABLE_IPV6
#if HAVE_NETNETSNMP_ENABLE_IPV6_IP6_VAR_H
#ifdef HAVE_NETNETSNMP_ENABLE_IPV6_IP6_VAR_H
#include <netinet6/ip6_var.h>
#endif
#endif
#if HAVE_NETINET_IN_PCB_H
#ifdef HAVE_NETINET_IN_PCB_H
#include <netinet/in_pcb.h>
#endif
#if HAVE_INET_MIB2_H
#ifdef HAVE_INET_MIB2_H
#include <inet/mib2.h>
#endif
#if HAVE_UNISTD_H
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#ifdef HAVE_PWD_H
@ -112,13 +112,38 @@
#include "agent_module_includes.h"
#include "mib_module_includes.h"
netsnmp_feature_child_of(agent_read_config_all, libnetsnmpagent)
netsnmp_feature_child_of(agent_read_config_all, libnetsnmpagent);
netsnmp_feature_child_of(snmpd_unregister_config_handler, agent_read_config_all)
netsnmp_feature_child_of(snmpd_unregister_config_handler, agent_read_config_all);
void netsnmp_set_agent_user_id(int uid)
{
static int agent_user_id = -1;
if (agent_user_id != -1 && uid != agent_user_id) {
snmp_log(LOG_ERR, "User ID has already been set -- can not change\n");
return;
}
agent_user_id = uid;
netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_AGENT_USERID, uid);
}
void netsnmp_set_agent_group_id(int gid)
{
static int agent_group_id = -1;
if (agent_group_id != -1 && gid != agent_group_id) {
snmp_log(LOG_ERR, "Group ID has already been set -- can not change\n");
return;
}
agent_group_id = gid;
netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_AGENT_GROUPID,
gid);
}
#ifdef HAVE_UNISTD_H
void
snmpd_set_agent_user(const char *token, char *cptr)
netsnmp_parse_agent_user(const char *token, char *cptr)
{
if (cptr[0] == '#') {
char *ecp;
@ -128,8 +153,7 @@ snmpd_set_agent_user(const char *token, char *cptr)
if (*ecp != 0) {
config_perror("Bad number");
} else {
netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID,
NETSNMP_DS_AGENT_USERID, uid);
netsnmp_set_agent_user_id(uid);
}
#if defined(HAVE_GETPWNAM) && defined(HAVE_PWD_H)
} else {
@ -137,8 +161,7 @@ snmpd_set_agent_user(const char *token, char *cptr)
info = getpwnam(cptr);
if (info)
netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID,
NETSNMP_DS_AGENT_USERID, info->pw_uid);
netsnmp_set_agent_user_id(info->pw_uid);
else
config_perror("User not found in passwd database");
endpwent();
@ -147,7 +170,7 @@ snmpd_set_agent_user(const char *token, char *cptr)
}
void
snmpd_set_agent_group(const char *token, char *cptr)
netsnmp_parse_agent_group(const char *token, char *cptr)
{
if (cptr[0] == '#') {
char *ecp;
@ -156,8 +179,7 @@ snmpd_set_agent_group(const char *token, char *cptr)
if (*ecp != 0) {
config_perror("Bad number");
} else {
netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID,
NETSNMP_DS_AGENT_GROUPID, gid);
netsnmp_set_agent_group_id(gid);
}
#if defined(HAVE_GETGRNAM) && defined(HAVE_GRP_H)
} else {
@ -165,8 +187,7 @@ snmpd_set_agent_group(const char *token, char *cptr)
info = getgrnam(cptr);
if (info)
netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID,
NETSNMP_DS_AGENT_GROUPID, info->gr_gid);
netsnmp_set_agent_group_id(info->gr_gid);
else
config_perror("Group not found in group database");
endgrent();
@ -193,7 +214,6 @@ snmpd_set_agent_address(const char *token, char *cptr)
* append to the older specification string
*/
snprintf(buf, sizeof(buf), "%s,%s", ptr, cptr);
buf[sizeof(buf) - 1] = '\0';
} else {
strlcpy(buf, cptr, sizeof(buf));
}
@ -256,9 +276,9 @@ init_agent_read_config(const char *app)
NETSNMP_DS_AGENT_TRAP_ADDR);
#ifdef HAVE_UNISTD_H
register_app_config_handler("agentuser",
snmpd_set_agent_user, NULL, "userid");
netsnmp_parse_agent_user, NULL, "userid");
register_app_config_handler("agentgroup",
snmpd_set_agent_group, NULL, "groupid");
netsnmp_parse_agent_group, NULL, "groupid");
#endif
#ifndef NETSNMP_NO_LISTEN_SUPPORT
register_app_config_handler("agentaddress",
@ -333,7 +353,7 @@ snmpd_register_const_config_handler(const char *token,
}
#ifdef NETSNMP_FEATURE_REQUIRE_SNMPD_UNREGISTER_CONFIG_HANDLER
netsnmp_feature_require(unregister_app_config_handler)
netsnmp_feature_require(unregister_app_config_handler);
#endif /* NETSNMP_FEATURE_REQUIRE_SNMPD_UNREGISTER_CONFIG_HANDLER */
#ifndef NETSNMP_FEATURE_REMOVE_SNMPD_UNREGISTER_CONFIG_HANDLER

View File

@ -30,26 +30,26 @@
#include <net-snmp/net-snmp-features.h>
#include <signal.h>
#if HAVE_STRING_H
#ifdef HAVE_STRING_H
#include <string.h>
#endif
#if HAVE_STDLIB_H
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#include <sys/types.h>
#include <stdio.h>
#include <fcntl.h>
#if TIME_WITH_SYS_TIME
#ifdef TIME_WITH_SYS_TIME
# include <sys/time.h>
# include <time.h>
#else
# if HAVE_SYS_TIME_H
# ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
# else
# include <time.h>
# endif
#endif
#if HAVE_NETINET_IN_H
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
@ -73,9 +73,9 @@
#include "agentx/client.h"
#endif
netsnmp_feature_child_of(agent_registry_all, libnetsnmpagent)
netsnmp_feature_child_of(agent_registry_all, libnetsnmpagent);
netsnmp_feature_child_of(unregister_mib_table_row, agent_registry_all)
netsnmp_feature_child_of(unregister_mib_table_row, agent_registry_all);
/** @defgroup agent_lookup_cache Lookup cache, storing the registered OIDs.
* Maintain the cache used for locating sub-trees and OIDs.
@ -561,7 +561,7 @@ netsnmp_subtree_change_prev(netsnmp_subtree *ptr, netsnmp_subtree *theprev)
&ptr->oid_off);
}
netsnmp_feature_child_of(netsnmp_subtree_compare,netsnmp_unused)
netsnmp_feature_child_of(netsnmp_subtree_compare,netsnmp_unused);
#ifndef NETSNMP_FEATURE_REMOVE_NETSNMP_SUBTREE_COMPARE
/** Compares OIDs of given subtrees.
*
@ -1278,7 +1278,6 @@ netsnmp_register_mib(const char *moduleName,
reg_parms.range_ubound = range_ubound;
reg_parms.timeout = timeout;
reg_parms.flags = (u_char) flags;
reg_parms.contextName = context;
reg_parms.session = ss;
reg_parms.reginfo = reginfo;
reg_parms.contextName = context;
@ -2167,7 +2166,7 @@ netsnmp_acm_check_subtree(netsnmp_pdu *pdu, oid *name, size_t namelen)
return 1;
}
netsnmp_feature_child_of(get_session_for_oid,netsnmp_unused)
netsnmp_feature_child_of(get_session_for_oid,netsnmp_unused);
#ifndef NETSNMP_FEATURE_REMOVE_GET_SESSION_FOR_OID
netsnmp_session *
get_session_for_oid(const oid *name, size_t len, const char *context_name)
@ -2334,7 +2333,7 @@ dump_registry(void)
/* End of MIB registration code */
netsnmp_feature_child_of(register_signal, netsnmp_unused)
netsnmp_feature_child_of(register_signal, netsnmp_unused);
#ifndef NETSNMP_FEATURE_REMOVE_REGISTER_SIGNAL
/** @defgroup agent_signals POSIX signals support for agents.

View File

@ -1,8 +1,8 @@
#include <net-snmp/net-snmp-config.h>
#if HAVE_STDLIB_H
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#if HAVE_STRING_H
#ifdef HAVE_STRING_H
#include <string.h>
#else
#include <strings.h>

View File

@ -25,34 +25,34 @@
#include <net-snmp/net-snmp-config.h>
#include <net-snmp/net-snmp-features.h>
#if HAVE_UNISTD_H
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#if HAVE_NETDB_H
#ifdef HAVE_NETDB_H
#include <netdb.h>
#endif
#if HAVE_STDLIB_H
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#if HAVE_STRING_H
#ifdef HAVE_STRING_H
#include <string.h>
#else
#include <strings.h>
#endif
#if TIME_WITH_SYS_TIME
#ifdef TIME_WITH_SYS_TIME
# include <sys/time.h>
# include <time.h>
#else
# if HAVE_SYS_TIME_H
# ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
# else
# include <time.h>
# endif
#endif
#if HAVE_SYS_SOCKET_H
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#if HAVE_NETINET_IN_H
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
#include <net-snmp/utilities.h>
@ -75,13 +75,13 @@
#include "mibgroup/notification/snmpNotifyTable_data.h"
#endif
netsnmp_feature_child_of(agent_trap_all, libnetsnmpagent)
netsnmp_feature_child_of(agent_trap_all, libnetsnmpagent);
netsnmp_feature_child_of(trap_vars_with_context, agent_trap_all)
netsnmp_feature_child_of(remove_trap_session, agent_trap_all)
netsnmp_feature_child_of(trap_vars_with_context, agent_trap_all);
netsnmp_feature_child_of(remove_trap_session, agent_trap_all);
netsnmp_feature_child_of(send_v3trap,netsnmp_unused)
netsnmp_feature_child_of(send_trap_pdu,netsnmp_unused)
netsnmp_feature_child_of(send_v3trap,netsnmp_unused);
netsnmp_feature_child_of(send_trap_pdu,netsnmp_unused);
struct trap_sink {
netsnmp_session *sesp;
@ -92,11 +92,6 @@ struct trap_sink {
struct trap_sink *sinks = NULL;
#ifndef NETSNMP_DISABLE_SNMPV1
static int _v1_sessions = 0;
#endif /* NETSNMP_DISABLE_SNMPV1 */
static int _v2_sessions = 0;
const oid objid_enterprisetrap[] = { NETSNMP_NOTIFICATION_MIB };
const oid trap_version_id[] = { NETSNMP_SYSTEM_MIB };
const int enterprisetrap_len = OID_LENGTH(objid_enterprisetrap);
@ -159,55 +154,6 @@ free_trap_session(struct trap_sink *sp)
free(sp);
}
static void
_trap_version_incr(int version)
{
switch (version) {
#ifndef NETSNMP_DISABLE_SNMPV1
case SNMP_VERSION_1:
++_v1_sessions;
break;
#endif
#ifndef NETSNMP_DISABLE_SNMPV2C
case SNMP_VERSION_2c:
#endif
case SNMP_VERSION_3:
++_v2_sessions;
break;
default:
snmp_log(LOG_ERR, "unknown snmp version %d\n", version);
}
return;
}
static void
_trap_version_decr(int version)
{
switch (version) {
#ifndef NETSNMP_DISABLE_SNMPV1
case SNMP_VERSION_1:
if (--_v1_sessions < 0) {
snmp_log(LOG_ERR,"v1 session count < 0! fixed.\n");
_v1_sessions = 0;
}
break;
#endif
#ifndef NETSNMP_DISABLE_SNMPV2C
case SNMP_VERSION_2c:
#endif
case SNMP_VERSION_3:
if (--_v2_sessions < 0) {
snmp_log(LOG_ERR,"v2 session count < 0! fixed.\n");
_v2_sessions = 0;
}
break;
default:
snmp_log(LOG_ERR, "unknown snmp version %d\n", version);
}
return;
}
#ifndef NETSNMP_NO_TRAP_STATS
static void
_dump_trap_stats(netsnmp_session *sess)
@ -285,8 +231,6 @@ netsnmp_add_notification_session(netsnmp_session * ss, int pdutype,
sinks = new_sink;
}
_trap_version_incr(version);
return 1;
}
@ -338,7 +282,6 @@ remove_trap_session(netsnmp_session * ss)
} else {
sinks = sp->next;
}
_trap_version_decr(ss->version);
/*
* I don't believe you *really* want to close the session here;
* it may still be in use for other purposes. In particular this
@ -490,7 +433,6 @@ snmpd_free_trapsinks(void)
DEBUGMSGTL(("trap", "freeing trap sessions\n"));
while (sp) {
sinks = sinks->next;
_trap_version_decr(sp->version);
free_trap_session(sp);
sp = sinks;
}
@ -1025,11 +967,11 @@ netsnmp_send_traps(int trap, int specific,
}
}
#ifndef NETSNMP_DISABLE_SNMPV1
if (template_v1pdu && _v1_sessions)
if (template_v1pdu)
snmp_call_callbacks(SNMP_CALLBACK_APPLICATION,
SNMPD_CALLBACK_SEND_TRAP1, template_v1pdu);
#endif
if (template_v2pdu && _v2_sessions)
if (template_v2pdu)
snmp_call_callbacks(SNMP_CALLBACK_APPLICATION,
SNMPD_CALLBACK_SEND_TRAP2, template_v2pdu);
snmp_free_pdu(template_v1pdu);
@ -1219,8 +1161,19 @@ send_trap_to_sess(netsnmp_session * sess, netsnmp_pdu *template_pdu)
template_pdu->command, sess->version));
return;
}
DEBUGMSGTL(("trap", "sending trap type=%d, version=%ld\n",
template_pdu->command, sess->version));
DEBUGIF("trap") {
struct session_list *sessp = snmp_sess_pointer(sess);
netsnmp_transport *t = sessp->transport;
const void *dst = template_pdu->transport_data;
const int dst_len = template_pdu->transport_data_length;
char *peer = NULL;
if (t && t->f_fmtaddr)
peer = t->f_fmtaddr(t, dst, dst_len);
DEBUGMSGTL(("trap", "sending trap type=%d, version=%ld to %s\n",
template_pdu->command, sess->version, peer ? peer : "(?)"));
free(peer);
}
#ifndef NETSNMP_DISABLE_SNMPV1
if (sess->version == SNMP_VERSION_1 &&
@ -1603,8 +1556,7 @@ netsnmp_create_v3user_notification_session(const char *dest, const char *user,
engineId = tmp_engineId;
}
usmUser = usm_get_user(NETSNMP_REMOVE_CONST(u_char *,engineId),
engineId_len, NETSNMP_REMOVE_CONST(char *,user));
usmUser = usm_get_user(engineId, engineId_len, user);
if (NULL == usmUser) {
DEBUGMSGTL(("trap:v3user_notif_sess", "usmUser %s not found\n", user));
return NULL;
@ -1701,7 +1653,7 @@ netsnmp_create_v3user_notification_session(const char *dest, const char *user,
ss->version, notif_name, notif_tag,
notif_profile) != 1) {
DEBUGMSGTL(("trap:v3user_notif_sess", "add notification failed\n"));
snmp_sess_close(ss);
snmp_close(ss);
ss = NULL;
goto bail;
}
@ -1710,6 +1662,7 @@ netsnmp_create_v3user_notification_session(const char *dest, const char *user,
/** free any allocated mem in session */
SNMP_FREE(session.securityAuthProto);
SNMP_FREE(session.securityPrivProto);
SNMP_FREE(session.contextEngineID);
return ss;
}
@ -1735,14 +1688,17 @@ snmpd_parse_config_trapsess(const char *word, char *cptr)
if (strncmp(cp, "-profile", 8) == 0) {
cp = skip_token(cp);
cp = copy_nword(cp, tmp, SPRINT_MAX_LEN);
free(profile);
profile = strdup(tmp);
} else if (strncmp(cp, "-name", 5) == 0) {
cp = skip_token(cp);
cp = copy_nword(cp, tmp, SPRINT_MAX_LEN);
free(name);
name = strdup(tmp);
} else if (strncmp(cp, "-tag", 5) == 0) {
} else if (strncmp(cp, "-tag", 4) == 0) {
cp = skip_token(cp);
cp = copy_nword(cp, tmp, SPRINT_MAX_LEN);
free(tag);
tag = strdup(tmp);
} else
break;
@ -1835,6 +1791,7 @@ snmpd_parse_config_trapsess(const char *word, char *cptr)
ss->version, name, tag, profile);
cleanup:
netsnmp_cleanup_session(&session);
SNMP_FREE(clientaddr_save);
SNMP_FREE(profile);
SNMP_FREE(name);

View File

@ -1,24 +1,23 @@
#include <net-snmp/net-snmp-config.h>
#ifdef NETSNMP_CAN_USE_NLIST
#if HAVE_STRING_H
#ifdef HAVE_STRING_H
#include <string.h>
#else
#include <strings.h>
#endif
#if HAVE_STDLIB_H
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#include <stdio.h>
#include <errno.h>
#include <fcntl.h>
#include <netinet/in.h>
#ifdef HAVE_NLIST_H
#include <nlist.h>
#endif
#if HAVE_KVM_H
#ifdef HAVE_KVM_H
#include <kvm.h>
#elif defined(HAVE_NLIST_H)
#include <nlist.h>
#endif
#include <net-snmp/agent/auto_nlist.h>
@ -52,9 +51,6 @@ auto_nlist_value(const char *string)
}
}
if (*ptr == 0) {
#if !(defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7))
static char *n_name = NULL;
#endif
*ptr = (struct autonlist *) malloc(sizeof(struct autonlist));
memset(*ptr, 0, sizeof(struct autonlist));
it = *ptr;
@ -72,17 +68,17 @@ auto_nlist_value(const char *string)
#elif defined(freebsd9)
sprintf(__DECONST(char*, it->nl[0].n_name), "_%s", string);
#else
{
static char *name;
if (n_name != NULL)
free(n_name);
n_name = malloc(strlen(string) + 2);
if (n_name == NULL) {
snmp_log(LOG_ERR, "nlist err: failed to allocate memory");
return (-1);
free(name);
name = NULL;
if (asprintf(&name, "_%s", string) < 0) {
snmp_log(LOG_ERR, "nlist err: failed to allocate memory");
return -1;
}
it->nl[0].n_name = name;
}
snprintf(n_name, strlen(string) + 2, "_%s", string);
it->nl[0].n_name = (const char*)n_name;
#endif
it->nl[1].n_name = 0;
init_nlist(it->nl);
@ -104,7 +100,7 @@ auto_nlist_value(const char *string)
return (-1);
}
strcpy(n_name2, string);
it->nl[0].n_name = (const char*)n_name2;
it->nl[0].n_name = n_name2;
#endif
init_nlist(it->nl);
}
@ -150,7 +146,7 @@ static void
init_nlist(struct nlist nl[])
{
int ret;
#if HAVE_KVM_OPENFILES
#ifdef HAVE_KVM_OPENFILES
kvm_t *kernel;
char kvm_errbuf[4096];

View File

@ -1,6 +1,9 @@
# DO NOT DELETE THIS LINE -- make depend depends on it.
./all_helpers.lo: ../../include/net-snmp/net-snmp-config.h
./all_helpers.lo: ../../include/net-snmp/system/linux.h
./all_helpers.lo: ../../include/net-snmp/system/sysv.h
./all_helpers.lo: ../../include/net-snmp/system/generic.h
./all_helpers.lo: ../../include/net-snmp/machine/generic.h
./all_helpers.lo: ../../include/net-snmp/net-snmp-features.h
./all_helpers.lo: ../../include/net-snmp/net-snmp-includes.h
@ -30,7 +33,9 @@
./all_helpers.lo: ../../include/net-snmp/library/snmpTCPDomain.h
./all_helpers.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
./all_helpers.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
./all_helpers.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
./all_helpers.lo: ../../include/net-snmp/library/snmpIPXDomain.h
./all_helpers.lo: ../../include/net-snmp/library/snmpAAL5PVCDomain.h
./all_helpers.lo: ../../include/net-snmp/library/ucd_compat.h
./all_helpers.lo: ../../include/net-snmp/library/mib.h
./all_helpers.lo: ../../include/net-snmp/mib_api.h
@ -49,7 +54,6 @@
./all_helpers.lo: ../../include/net-snmp/library/data_list.h
./all_helpers.lo: ../../include/net-snmp/library/check_varbind.h
./all_helpers.lo: ../../include/net-snmp/library/container.h
./all_helpers.lo: ../../include/net-snmp/library/factory.h
./all_helpers.lo: ../../include/net-snmp/library/container_binary_array.h
./all_helpers.lo: ../../include/net-snmp/library/container_list_ssll.h
./all_helpers.lo: ../../include/net-snmp/library/container_iterator.h
@ -71,8 +75,8 @@
./all_helpers.lo: ../../include/net-snmp/library/lcd_time.h
./all_helpers.lo: ../../include/net-snmp/library/snmp_secmod.h
./all_helpers.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
./all_helpers.lo: ../../include/net-snmp/library/snmptsm.h
./all_helpers.lo: ../../include/net-snmp/library/snmpusm.h
./all_helpers.lo: ../../include/net-snmp/library/snmptsm.h
./all_helpers.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
./all_helpers.lo: ../../include/net-snmp/agent/mib_module_config.h
./all_helpers.lo: ../../include/net-snmp/agent/agent_module_config.h
@ -140,7 +144,9 @@
./baby_steps.lo: ../../include/net-snmp/library/snmpTCPDomain.h
./baby_steps.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
./baby_steps.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
./baby_steps.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
./baby_steps.lo: ../../include/net-snmp/library/snmpIPXDomain.h
./baby_steps.lo: ../../include/net-snmp/library/snmpAAL5PVCDomain.h
./baby_steps.lo: ../../include/net-snmp/library/ucd_compat.h
./baby_steps.lo: ../../include/net-snmp/library/mib.h
./baby_steps.lo: ../../include/net-snmp/mib_api.h
@ -159,7 +165,6 @@
./baby_steps.lo: ../../include/net-snmp/library/data_list.h
./baby_steps.lo: ../../include/net-snmp/library/check_varbind.h
./baby_steps.lo: ../../include/net-snmp/library/container.h
./baby_steps.lo: ../../include/net-snmp/library/factory.h
./baby_steps.lo: ../../include/net-snmp/library/container_binary_array.h
./baby_steps.lo: ../../include/net-snmp/library/container_list_ssll.h
./baby_steps.lo: ../../include/net-snmp/library/container_iterator.h
@ -180,8 +185,8 @@
./baby_steps.lo: ../../include/net-snmp/library/lcd_time.h
./baby_steps.lo: ../../include/net-snmp/library/snmp_secmod.h
./baby_steps.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
./baby_steps.lo: ../../include/net-snmp/library/snmptsm.h
./baby_steps.lo: ../../include/net-snmp/library/snmpusm.h
./baby_steps.lo: ../../include/net-snmp/library/snmptsm.h
./baby_steps.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
./baby_steps.lo: ../../include/net-snmp/agent/mib_module_config.h
./baby_steps.lo: ../../include/net-snmp/agent/agent_module_config.h
@ -247,7 +252,9 @@
./bulk_to_next.lo: ../../include/net-snmp/library/snmpTCPDomain.h
./bulk_to_next.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
./bulk_to_next.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
./bulk_to_next.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
./bulk_to_next.lo: ../../include/net-snmp/library/snmpIPXDomain.h
./bulk_to_next.lo: ../../include/net-snmp/library/snmpAAL5PVCDomain.h
./bulk_to_next.lo: ../../include/net-snmp/library/ucd_compat.h
./bulk_to_next.lo: ../../include/net-snmp/library/mib.h
./bulk_to_next.lo: ../../include/net-snmp/mib_api.h
@ -267,7 +274,6 @@
./bulk_to_next.lo: ../../include/net-snmp/library/data_list.h
./bulk_to_next.lo: ../../include/net-snmp/library/check_varbind.h
./bulk_to_next.lo: ../../include/net-snmp/library/container.h
./bulk_to_next.lo: ../../include/net-snmp/library/factory.h
./bulk_to_next.lo: ../../include/net-snmp/library/container_binary_array.h
./bulk_to_next.lo: ../../include/net-snmp/library/container_list_ssll.h
./bulk_to_next.lo: ../../include/net-snmp/library/container_iterator.h
@ -288,8 +294,8 @@
./bulk_to_next.lo: ../../include/net-snmp/library/lcd_time.h
./bulk_to_next.lo: ../../include/net-snmp/library/snmp_secmod.h
./bulk_to_next.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
./bulk_to_next.lo: ../../include/net-snmp/library/snmptsm.h
./bulk_to_next.lo: ../../include/net-snmp/library/snmpusm.h
./bulk_to_next.lo: ../../include/net-snmp/library/snmptsm.h
./bulk_to_next.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
./bulk_to_next.lo: ../../include/net-snmp/agent/mib_module_config.h
./bulk_to_next.lo: ../../include/net-snmp/agent/agent_module_config.h
@ -356,7 +362,9 @@
./cache_handler.lo: ../../include/net-snmp/library/snmpTCPDomain.h
./cache_handler.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
./cache_handler.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
./cache_handler.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
./cache_handler.lo: ../../include/net-snmp/library/snmpIPXDomain.h
./cache_handler.lo: ../../include/net-snmp/library/snmpAAL5PVCDomain.h
./cache_handler.lo: ../../include/net-snmp/library/ucd_compat.h
./cache_handler.lo: ../../include/net-snmp/library/mib.h
./cache_handler.lo: ../../include/net-snmp/mib_api.h
@ -375,7 +383,6 @@
./cache_handler.lo: ../../include/net-snmp/library/data_list.h
./cache_handler.lo: ../../include/net-snmp/library/check_varbind.h
./cache_handler.lo: ../../include/net-snmp/library/container.h
./cache_handler.lo: ../../include/net-snmp/library/factory.h
./cache_handler.lo: ../../include/net-snmp/library/container_binary_array.h
./cache_handler.lo: ../../include/net-snmp/library/container_list_ssll.h
./cache_handler.lo: ../../include/net-snmp/library/container_iterator.h
@ -396,8 +403,8 @@
./cache_handler.lo: ../../include/net-snmp/library/lcd_time.h
./cache_handler.lo: ../../include/net-snmp/library/snmp_secmod.h
./cache_handler.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
./cache_handler.lo: ../../include/net-snmp/library/snmptsm.h
./cache_handler.lo: ../../include/net-snmp/library/snmpusm.h
./cache_handler.lo: ../../include/net-snmp/library/snmptsm.h
./cache_handler.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
./cache_handler.lo: ../../include/net-snmp/agent/mib_module_config.h
./cache_handler.lo: ../../include/net-snmp/agent/agent_module_config.h
@ -463,7 +470,9 @@
./debug_handler.lo: ../../include/net-snmp/library/snmpTCPDomain.h
./debug_handler.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
./debug_handler.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
./debug_handler.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
./debug_handler.lo: ../../include/net-snmp/library/snmpIPXDomain.h
./debug_handler.lo: ../../include/net-snmp/library/snmpAAL5PVCDomain.h
./debug_handler.lo: ../../include/net-snmp/library/ucd_compat.h
./debug_handler.lo: ../../include/net-snmp/library/mib.h
./debug_handler.lo: ../../include/net-snmp/mib_api.h
@ -483,7 +492,6 @@
./debug_handler.lo: ../../include/net-snmp/library/data_list.h
./debug_handler.lo: ../../include/net-snmp/library/check_varbind.h
./debug_handler.lo: ../../include/net-snmp/library/container.h
./debug_handler.lo: ../../include/net-snmp/library/factory.h
./debug_handler.lo: ../../include/net-snmp/library/container_binary_array.h
./debug_handler.lo: ../../include/net-snmp/library/container_list_ssll.h
./debug_handler.lo: ../../include/net-snmp/library/container_iterator.h
@ -504,8 +512,8 @@
./debug_handler.lo: ../../include/net-snmp/library/lcd_time.h
./debug_handler.lo: ../../include/net-snmp/library/snmp_secmod.h
./debug_handler.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
./debug_handler.lo: ../../include/net-snmp/library/snmptsm.h
./debug_handler.lo: ../../include/net-snmp/library/snmpusm.h
./debug_handler.lo: ../../include/net-snmp/library/snmptsm.h
./debug_handler.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
./debug_handler.lo: ../../include/net-snmp/agent/mib_module_config.h
./debug_handler.lo: ../../include/net-snmp/agent/agent_module_config.h
@ -572,7 +580,9 @@
./instance.lo: ../../include/net-snmp/library/snmpTCPDomain.h
./instance.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
./instance.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
./instance.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
./instance.lo: ../../include/net-snmp/library/snmpIPXDomain.h
./instance.lo: ../../include/net-snmp/library/snmpAAL5PVCDomain.h
./instance.lo: ../../include/net-snmp/library/ucd_compat.h
./instance.lo: ../../include/net-snmp/library/mib.h
./instance.lo: ../../include/net-snmp/mib_api.h
@ -591,7 +601,6 @@
./instance.lo: ../../include/net-snmp/library/data_list.h
./instance.lo: ../../include/net-snmp/library/check_varbind.h
./instance.lo: ../../include/net-snmp/library/container.h
./instance.lo: ../../include/net-snmp/library/factory.h
./instance.lo: ../../include/net-snmp/library/container_binary_array.h
./instance.lo: ../../include/net-snmp/library/container_list_ssll.h
./instance.lo: ../../include/net-snmp/library/container_iterator.h
@ -612,8 +621,8 @@
./instance.lo: ../../include/net-snmp/library/lcd_time.h
./instance.lo: ../../include/net-snmp/library/snmp_secmod.h
./instance.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
./instance.lo: ../../include/net-snmp/library/snmptsm.h
./instance.lo: ../../include/net-snmp/library/snmpusm.h
./instance.lo: ../../include/net-snmp/library/snmptsm.h
./instance.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
./instance.lo: ../../include/net-snmp/agent/mib_module_config.h
./instance.lo: ../../include/net-snmp/agent/agent_module_config.h
@ -680,7 +689,9 @@
./mode_end_call.lo: ../../include/net-snmp/library/snmpTCPDomain.h
./mode_end_call.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
./mode_end_call.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
./mode_end_call.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
./mode_end_call.lo: ../../include/net-snmp/library/snmpIPXDomain.h
./mode_end_call.lo: ../../include/net-snmp/library/snmpAAL5PVCDomain.h
./mode_end_call.lo: ../../include/net-snmp/library/ucd_compat.h
./mode_end_call.lo: ../../include/net-snmp/library/mib.h
./mode_end_call.lo: ../../include/net-snmp/mib_api.h
@ -699,7 +710,6 @@
./mode_end_call.lo: ../../include/net-snmp/library/data_list.h
./mode_end_call.lo: ../../include/net-snmp/library/check_varbind.h
./mode_end_call.lo: ../../include/net-snmp/library/container.h
./mode_end_call.lo: ../../include/net-snmp/library/factory.h
./mode_end_call.lo: ../../include/net-snmp/library/container_binary_array.h
./mode_end_call.lo: ../../include/net-snmp/library/container_list_ssll.h
./mode_end_call.lo: ../../include/net-snmp/library/container_iterator.h
@ -720,8 +730,8 @@
./mode_end_call.lo: ../../include/net-snmp/library/lcd_time.h
./mode_end_call.lo: ../../include/net-snmp/library/snmp_secmod.h
./mode_end_call.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
./mode_end_call.lo: ../../include/net-snmp/library/snmptsm.h
./mode_end_call.lo: ../../include/net-snmp/library/snmpusm.h
./mode_end_call.lo: ../../include/net-snmp/library/snmptsm.h
./mode_end_call.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
./mode_end_call.lo: ../../include/net-snmp/agent/mib_module_config.h
./mode_end_call.lo: ../../include/net-snmp/agent/agent_module_config.h
@ -787,7 +797,9 @@
./multiplexer.lo: ../../include/net-snmp/library/snmpTCPDomain.h
./multiplexer.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
./multiplexer.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
./multiplexer.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
./multiplexer.lo: ../../include/net-snmp/library/snmpIPXDomain.h
./multiplexer.lo: ../../include/net-snmp/library/snmpAAL5PVCDomain.h
./multiplexer.lo: ../../include/net-snmp/library/ucd_compat.h
./multiplexer.lo: ../../include/net-snmp/library/mib.h
./multiplexer.lo: ../../include/net-snmp/mib_api.h
@ -807,7 +819,6 @@
./multiplexer.lo: ../../include/net-snmp/library/data_list.h
./multiplexer.lo: ../../include/net-snmp/library/check_varbind.h
./multiplexer.lo: ../../include/net-snmp/library/container.h
./multiplexer.lo: ../../include/net-snmp/library/factory.h
./multiplexer.lo: ../../include/net-snmp/library/container_binary_array.h
./multiplexer.lo: ../../include/net-snmp/library/container_list_ssll.h
./multiplexer.lo: ../../include/net-snmp/library/container_iterator.h
@ -828,8 +839,8 @@
./multiplexer.lo: ../../include/net-snmp/library/lcd_time.h
./multiplexer.lo: ../../include/net-snmp/library/snmp_secmod.h
./multiplexer.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
./multiplexer.lo: ../../include/net-snmp/library/snmptsm.h
./multiplexer.lo: ../../include/net-snmp/library/snmpusm.h
./multiplexer.lo: ../../include/net-snmp/library/snmptsm.h
./multiplexer.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
./multiplexer.lo: ../../include/net-snmp/agent/mib_module_config.h
./multiplexer.lo: ../../include/net-snmp/agent/agent_module_config.h
@ -895,7 +906,9 @@
./null.lo: ../../include/net-snmp/library/snmpTCPDomain.h
./null.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
./null.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
./null.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
./null.lo: ../../include/net-snmp/library/snmpIPXDomain.h
./null.lo: ../../include/net-snmp/library/snmpAAL5PVCDomain.h
./null.lo: ../../include/net-snmp/library/ucd_compat.h
./null.lo: ../../include/net-snmp/library/mib.h
./null.lo: ../../include/net-snmp/mib_api.h
@ -915,7 +928,6 @@
./null.lo: ../../include/net-snmp/library/data_list.h
./null.lo: ../../include/net-snmp/library/check_varbind.h
./null.lo: ../../include/net-snmp/library/container.h
./null.lo: ../../include/net-snmp/library/factory.h
./null.lo: ../../include/net-snmp/library/container_binary_array.h
./null.lo: ../../include/net-snmp/library/container_list_ssll.h
./null.lo: ../../include/net-snmp/library/container_iterator.h
@ -936,8 +948,8 @@
./null.lo: ../../include/net-snmp/library/lcd_time.h
./null.lo: ../../include/net-snmp/library/snmp_secmod.h
./null.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
./null.lo: ../../include/net-snmp/library/snmptsm.h
./null.lo: ../../include/net-snmp/library/snmpusm.h
./null.lo: ../../include/net-snmp/library/snmptsm.h
./null.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
./null.lo: ../../include/net-snmp/agent/mib_module_config.h
./null.lo: ../../include/net-snmp/agent/agent_module_config.h
@ -1003,7 +1015,9 @@
./old_api.lo: ../../include/net-snmp/library/snmpTCPDomain.h
./old_api.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
./old_api.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
./old_api.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
./old_api.lo: ../../include/net-snmp/library/snmpIPXDomain.h
./old_api.lo: ../../include/net-snmp/library/snmpAAL5PVCDomain.h
./old_api.lo: ../../include/net-snmp/library/ucd_compat.h
./old_api.lo: ../../include/net-snmp/library/mib.h
./old_api.lo: ../../include/net-snmp/mib_api.h
@ -1023,7 +1037,6 @@
./old_api.lo: ../../include/net-snmp/library/data_list.h
./old_api.lo: ../../include/net-snmp/library/check_varbind.h
./old_api.lo: ../../include/net-snmp/library/container.h
./old_api.lo: ../../include/net-snmp/library/factory.h
./old_api.lo: ../../include/net-snmp/library/container_binary_array.h
./old_api.lo: ../../include/net-snmp/library/container_list_ssll.h
./old_api.lo: ../../include/net-snmp/library/container_iterator.h
@ -1044,8 +1057,8 @@
./old_api.lo: ../../include/net-snmp/library/lcd_time.h
./old_api.lo: ../../include/net-snmp/library/snmp_secmod.h
./old_api.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
./old_api.lo: ../../include/net-snmp/library/snmptsm.h
./old_api.lo: ../../include/net-snmp/library/snmpusm.h
./old_api.lo: ../../include/net-snmp/library/snmptsm.h
./old_api.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
./old_api.lo: ../../include/net-snmp/agent/mib_module_config.h
./old_api.lo: ../../include/net-snmp/agent/agent_module_config.h
@ -1112,7 +1125,9 @@
./read_only.lo: ../../include/net-snmp/library/snmpTCPDomain.h
./read_only.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
./read_only.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
./read_only.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
./read_only.lo: ../../include/net-snmp/library/snmpIPXDomain.h
./read_only.lo: ../../include/net-snmp/library/snmpAAL5PVCDomain.h
./read_only.lo: ../../include/net-snmp/library/ucd_compat.h
./read_only.lo: ../../include/net-snmp/library/mib.h
./read_only.lo: ../../include/net-snmp/mib_api.h
@ -1132,7 +1147,6 @@
./read_only.lo: ../../include/net-snmp/library/data_list.h
./read_only.lo: ../../include/net-snmp/library/check_varbind.h
./read_only.lo: ../../include/net-snmp/library/container.h
./read_only.lo: ../../include/net-snmp/library/factory.h
./read_only.lo: ../../include/net-snmp/library/container_binary_array.h
./read_only.lo: ../../include/net-snmp/library/container_list_ssll.h
./read_only.lo: ../../include/net-snmp/library/container_iterator.h
@ -1153,8 +1167,8 @@
./read_only.lo: ../../include/net-snmp/library/lcd_time.h
./read_only.lo: ../../include/net-snmp/library/snmp_secmod.h
./read_only.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
./read_only.lo: ../../include/net-snmp/library/snmptsm.h
./read_only.lo: ../../include/net-snmp/library/snmpusm.h
./read_only.lo: ../../include/net-snmp/library/snmptsm.h
./read_only.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
./read_only.lo: ../../include/net-snmp/agent/mib_module_config.h
./read_only.lo: ../../include/net-snmp/agent/agent_module_config.h
@ -1221,7 +1235,9 @@
./row_merge.lo: ../../include/net-snmp/library/snmpTCPDomain.h
./row_merge.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
./row_merge.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
./row_merge.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
./row_merge.lo: ../../include/net-snmp/library/snmpIPXDomain.h
./row_merge.lo: ../../include/net-snmp/library/snmpAAL5PVCDomain.h
./row_merge.lo: ../../include/net-snmp/library/ucd_compat.h
./row_merge.lo: ../../include/net-snmp/library/mib.h
./row_merge.lo: ../../include/net-snmp/mib_api.h
@ -1240,7 +1256,6 @@
./row_merge.lo: ../../include/net-snmp/library/data_list.h
./row_merge.lo: ../../include/net-snmp/library/check_varbind.h
./row_merge.lo: ../../include/net-snmp/library/container.h
./row_merge.lo: ../../include/net-snmp/library/factory.h
./row_merge.lo: ../../include/net-snmp/library/container_binary_array.h
./row_merge.lo: ../../include/net-snmp/library/container_list_ssll.h
./row_merge.lo: ../../include/net-snmp/library/container_iterator.h
@ -1261,8 +1276,8 @@
./row_merge.lo: ../../include/net-snmp/library/lcd_time.h
./row_merge.lo: ../../include/net-snmp/library/snmp_secmod.h
./row_merge.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
./row_merge.lo: ../../include/net-snmp/library/snmptsm.h
./row_merge.lo: ../../include/net-snmp/library/snmpusm.h
./row_merge.lo: ../../include/net-snmp/library/snmptsm.h
./row_merge.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
./row_merge.lo: ../../include/net-snmp/agent/mib_module_config.h
./row_merge.lo: ../../include/net-snmp/agent/agent_module_config.h
@ -1328,7 +1343,9 @@
./scalar.lo: ../../include/net-snmp/library/snmpTCPDomain.h
./scalar.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
./scalar.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
./scalar.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
./scalar.lo: ../../include/net-snmp/library/snmpIPXDomain.h
./scalar.lo: ../../include/net-snmp/library/snmpAAL5PVCDomain.h
./scalar.lo: ../../include/net-snmp/library/ucd_compat.h
./scalar.lo: ../../include/net-snmp/library/mib.h
./scalar.lo: ../../include/net-snmp/mib_api.h
@ -1348,7 +1365,6 @@
./scalar.lo: ../../include/net-snmp/library/data_list.h
./scalar.lo: ../../include/net-snmp/library/check_varbind.h
./scalar.lo: ../../include/net-snmp/library/container.h
./scalar.lo: ../../include/net-snmp/library/factory.h
./scalar.lo: ../../include/net-snmp/library/container_binary_array.h
./scalar.lo: ../../include/net-snmp/library/container_list_ssll.h
./scalar.lo: ../../include/net-snmp/library/container_iterator.h
@ -1369,8 +1385,8 @@
./scalar.lo: ../../include/net-snmp/library/lcd_time.h
./scalar.lo: ../../include/net-snmp/library/snmp_secmod.h
./scalar.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
./scalar.lo: ../../include/net-snmp/library/snmptsm.h
./scalar.lo: ../../include/net-snmp/library/snmpusm.h
./scalar.lo: ../../include/net-snmp/library/snmptsm.h
./scalar.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
./scalar.lo: ../../include/net-snmp/agent/mib_module_config.h
./scalar.lo: ../../include/net-snmp/agent/agent_module_config.h
@ -1436,7 +1452,9 @@
./scalar_group.lo: ../../include/net-snmp/library/snmpTCPDomain.h
./scalar_group.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
./scalar_group.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
./scalar_group.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
./scalar_group.lo: ../../include/net-snmp/library/snmpIPXDomain.h
./scalar_group.lo: ../../include/net-snmp/library/snmpAAL5PVCDomain.h
./scalar_group.lo: ../../include/net-snmp/library/ucd_compat.h
./scalar_group.lo: ../../include/net-snmp/library/mib.h
./scalar_group.lo: ../../include/net-snmp/mib_api.h
@ -1456,7 +1474,6 @@
./scalar_group.lo: ../../include/net-snmp/library/data_list.h
./scalar_group.lo: ../../include/net-snmp/library/check_varbind.h
./scalar_group.lo: ../../include/net-snmp/library/container.h
./scalar_group.lo: ../../include/net-snmp/library/factory.h
./scalar_group.lo: ../../include/net-snmp/library/container_binary_array.h
./scalar_group.lo: ../../include/net-snmp/library/container_list_ssll.h
./scalar_group.lo: ../../include/net-snmp/library/container_iterator.h
@ -1477,8 +1494,8 @@
./scalar_group.lo: ../../include/net-snmp/library/lcd_time.h
./scalar_group.lo: ../../include/net-snmp/library/snmp_secmod.h
./scalar_group.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
./scalar_group.lo: ../../include/net-snmp/library/snmptsm.h
./scalar_group.lo: ../../include/net-snmp/library/snmpusm.h
./scalar_group.lo: ../../include/net-snmp/library/snmptsm.h
./scalar_group.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
./scalar_group.lo: ../../include/net-snmp/agent/mib_module_config.h
./scalar_group.lo: ../../include/net-snmp/agent/agent_module_config.h
@ -1544,7 +1561,9 @@
./serialize.lo: ../../include/net-snmp/library/snmpTCPDomain.h
./serialize.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
./serialize.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
./serialize.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
./serialize.lo: ../../include/net-snmp/library/snmpIPXDomain.h
./serialize.lo: ../../include/net-snmp/library/snmpAAL5PVCDomain.h
./serialize.lo: ../../include/net-snmp/library/ucd_compat.h
./serialize.lo: ../../include/net-snmp/library/mib.h
./serialize.lo: ../../include/net-snmp/mib_api.h
@ -1564,7 +1583,6 @@
./serialize.lo: ../../include/net-snmp/library/data_list.h
./serialize.lo: ../../include/net-snmp/library/check_varbind.h
./serialize.lo: ../../include/net-snmp/library/container.h
./serialize.lo: ../../include/net-snmp/library/factory.h
./serialize.lo: ../../include/net-snmp/library/container_binary_array.h
./serialize.lo: ../../include/net-snmp/library/container_list_ssll.h
./serialize.lo: ../../include/net-snmp/library/container_iterator.h
@ -1585,8 +1603,8 @@
./serialize.lo: ../../include/net-snmp/library/lcd_time.h
./serialize.lo: ../../include/net-snmp/library/snmp_secmod.h
./serialize.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
./serialize.lo: ../../include/net-snmp/library/snmptsm.h
./serialize.lo: ../../include/net-snmp/library/snmpusm.h
./serialize.lo: ../../include/net-snmp/library/snmptsm.h
./serialize.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
./serialize.lo: ../../include/net-snmp/agent/mib_module_config.h
./serialize.lo: ../../include/net-snmp/agent/agent_module_config.h
@ -1653,7 +1671,9 @@
./snmp_get_statistic.lo: ../../include/net-snmp/library/snmpTCPDomain.h
./snmp_get_statistic.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
./snmp_get_statistic.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
./snmp_get_statistic.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
./snmp_get_statistic.lo: ../../include/net-snmp/library/snmpIPXDomain.h
./snmp_get_statistic.lo: ../../include/net-snmp/library/snmpAAL5PVCDomain.h
./snmp_get_statistic.lo: ../../include/net-snmp/library/ucd_compat.h
./snmp_get_statistic.lo: ../../include/net-snmp/library/mib.h
./snmp_get_statistic.lo: ../../include/net-snmp/mib_api.h
@ -1672,7 +1692,6 @@
./snmp_get_statistic.lo: ../../include/net-snmp/library/data_list.h
./snmp_get_statistic.lo: ../../include/net-snmp/library/check_varbind.h
./snmp_get_statistic.lo: ../../include/net-snmp/library/container.h
./snmp_get_statistic.lo: ../../include/net-snmp/library/factory.h
./snmp_get_statistic.lo: ../../include/net-snmp/library/container_binary_array.h
./snmp_get_statistic.lo: ../../include/net-snmp/library/container_list_ssll.h
./snmp_get_statistic.lo: ../../include/net-snmp/library/container_iterator.h
@ -1693,8 +1712,8 @@
./snmp_get_statistic.lo: ../../include/net-snmp/library/lcd_time.h
./snmp_get_statistic.lo: ../../include/net-snmp/library/snmp_secmod.h
./snmp_get_statistic.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
./snmp_get_statistic.lo: ../../include/net-snmp/library/snmptsm.h
./snmp_get_statistic.lo: ../../include/net-snmp/library/snmpusm.h
./snmp_get_statistic.lo: ../../include/net-snmp/library/snmptsm.h
./snmp_get_statistic.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
./snmp_get_statistic.lo: ../../include/net-snmp/agent/mib_module_config.h
./snmp_get_statistic.lo: ../../include/net-snmp/agent/agent_module_config.h
@ -1761,7 +1780,9 @@
./stash_cache.lo: ../../include/net-snmp/library/snmpTCPDomain.h
./stash_cache.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
./stash_cache.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
./stash_cache.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
./stash_cache.lo: ../../include/net-snmp/library/snmpIPXDomain.h
./stash_cache.lo: ../../include/net-snmp/library/snmpAAL5PVCDomain.h
./stash_cache.lo: ../../include/net-snmp/library/ucd_compat.h
./stash_cache.lo: ../../include/net-snmp/library/mib.h
./stash_cache.lo: ../../include/net-snmp/mib_api.h
@ -1780,7 +1801,6 @@
./stash_cache.lo: ../../include/net-snmp/library/data_list.h
./stash_cache.lo: ../../include/net-snmp/library/check_varbind.h
./stash_cache.lo: ../../include/net-snmp/library/container.h
./stash_cache.lo: ../../include/net-snmp/library/factory.h
./stash_cache.lo: ../../include/net-snmp/library/container_binary_array.h
./stash_cache.lo: ../../include/net-snmp/library/container_list_ssll.h
./stash_cache.lo: ../../include/net-snmp/library/container_iterator.h
@ -1801,8 +1821,8 @@
./stash_cache.lo: ../../include/net-snmp/library/lcd_time.h
./stash_cache.lo: ../../include/net-snmp/library/snmp_secmod.h
./stash_cache.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
./stash_cache.lo: ../../include/net-snmp/library/snmptsm.h
./stash_cache.lo: ../../include/net-snmp/library/snmpusm.h
./stash_cache.lo: ../../include/net-snmp/library/snmptsm.h
./stash_cache.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
./stash_cache.lo: ../../include/net-snmp/agent/mib_module_config.h
./stash_cache.lo: ../../include/net-snmp/agent/agent_module_config.h
@ -1871,7 +1891,9 @@
./stash_to_next.lo: ../../include/net-snmp/library/snmpTCPDomain.h
./stash_to_next.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
./stash_to_next.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
./stash_to_next.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
./stash_to_next.lo: ../../include/net-snmp/library/snmpIPXDomain.h
./stash_to_next.lo: ../../include/net-snmp/library/snmpAAL5PVCDomain.h
./stash_to_next.lo: ../../include/net-snmp/library/ucd_compat.h
./stash_to_next.lo: ../../include/net-snmp/library/mib.h
./stash_to_next.lo: ../../include/net-snmp/mib_api.h
@ -1890,7 +1912,6 @@
./stash_to_next.lo: ../../include/net-snmp/library/data_list.h
./stash_to_next.lo: ../../include/net-snmp/library/check_varbind.h
./stash_to_next.lo: ../../include/net-snmp/library/container.h
./stash_to_next.lo: ../../include/net-snmp/library/factory.h
./stash_to_next.lo: ../../include/net-snmp/library/container_binary_array.h
./stash_to_next.lo: ../../include/net-snmp/library/container_list_ssll.h
./stash_to_next.lo: ../../include/net-snmp/library/container_iterator.h
@ -1911,8 +1932,8 @@
./stash_to_next.lo: ../../include/net-snmp/library/lcd_time.h
./stash_to_next.lo: ../../include/net-snmp/library/snmp_secmod.h
./stash_to_next.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
./stash_to_next.lo: ../../include/net-snmp/library/snmptsm.h
./stash_to_next.lo: ../../include/net-snmp/library/snmpusm.h
./stash_to_next.lo: ../../include/net-snmp/library/snmptsm.h
./stash_to_next.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
./stash_to_next.lo: ../../include/net-snmp/agent/mib_module_config.h
./stash_to_next.lo: ../../include/net-snmp/agent/agent_module_config.h
@ -1981,7 +2002,9 @@
./table.lo: ../../include/net-snmp/library/snmpTCPDomain.h
./table.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
./table.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
./table.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
./table.lo: ../../include/net-snmp/library/snmpIPXDomain.h
./table.lo: ../../include/net-snmp/library/snmpAAL5PVCDomain.h
./table.lo: ../../include/net-snmp/library/ucd_compat.h
./table.lo: ../../include/net-snmp/library/mib.h
./table.lo: ../../include/net-snmp/mib_api.h
@ -2000,7 +2023,6 @@
./table.lo: ../../include/net-snmp/library/data_list.h
./table.lo: ../../include/net-snmp/library/check_varbind.h
./table.lo: ../../include/net-snmp/library/container.h
./table.lo: ../../include/net-snmp/library/factory.h
./table.lo: ../../include/net-snmp/library/container_binary_array.h
./table.lo: ../../include/net-snmp/library/container_list_ssll.h
./table.lo: ../../include/net-snmp/library/container_iterator.h
@ -2021,8 +2043,8 @@
./table.lo: ../../include/net-snmp/library/lcd_time.h
./table.lo: ../../include/net-snmp/library/snmp_secmod.h
./table.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
./table.lo: ../../include/net-snmp/library/snmptsm.h
./table.lo: ../../include/net-snmp/library/snmpusm.h
./table.lo: ../../include/net-snmp/library/snmptsm.h
./table.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
./table.lo: ../../include/net-snmp/agent/mib_module_config.h
./table.lo: ../../include/net-snmp/agent/agent_module_config.h
@ -2089,7 +2111,9 @@
./table_array.lo: ../../include/net-snmp/library/snmpTCPDomain.h
./table_array.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
./table_array.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
./table_array.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
./table_array.lo: ../../include/net-snmp/library/snmpIPXDomain.h
./table_array.lo: ../../include/net-snmp/library/snmpAAL5PVCDomain.h
./table_array.lo: ../../include/net-snmp/library/ucd_compat.h
./table_array.lo: ../../include/net-snmp/library/mib.h
./table_array.lo: ../../include/net-snmp/mib_api.h
@ -2108,7 +2132,6 @@
./table_array.lo: ../../include/net-snmp/library/data_list.h
./table_array.lo: ../../include/net-snmp/library/check_varbind.h
./table_array.lo: ../../include/net-snmp/library/container.h
./table_array.lo: ../../include/net-snmp/library/factory.h
./table_array.lo: ../../include/net-snmp/library/container_binary_array.h
./table_array.lo: ../../include/net-snmp/library/container_list_ssll.h
./table_array.lo: ../../include/net-snmp/library/container_iterator.h
@ -2129,8 +2152,8 @@
./table_array.lo: ../../include/net-snmp/library/lcd_time.h
./table_array.lo: ../../include/net-snmp/library/snmp_secmod.h
./table_array.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
./table_array.lo: ../../include/net-snmp/library/snmptsm.h
./table_array.lo: ../../include/net-snmp/library/snmpusm.h
./table_array.lo: ../../include/net-snmp/library/snmptsm.h
./table_array.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
./table_array.lo: ../../include/net-snmp/agent/mib_module_config.h
./table_array.lo: ../../include/net-snmp/agent/agent_module_config.h
@ -2197,7 +2220,9 @@
./table_container.lo: ../../include/net-snmp/library/snmpTCPDomain.h
./table_container.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
./table_container.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
./table_container.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
./table_container.lo: ../../include/net-snmp/library/snmpIPXDomain.h
./table_container.lo: ../../include/net-snmp/library/snmpAAL5PVCDomain.h
./table_container.lo: ../../include/net-snmp/library/ucd_compat.h
./table_container.lo: ../../include/net-snmp/library/mib.h
./table_container.lo: ../../include/net-snmp/mib_api.h
@ -2216,7 +2241,6 @@
./table_container.lo: ../../include/net-snmp/library/data_list.h
./table_container.lo: ../../include/net-snmp/library/check_varbind.h
./table_container.lo: ../../include/net-snmp/library/container.h
./table_container.lo: ../../include/net-snmp/library/factory.h
./table_container.lo: ../../include/net-snmp/library/container_binary_array.h
./table_container.lo: ../../include/net-snmp/library/container_list_ssll.h
./table_container.lo: ../../include/net-snmp/library/container_iterator.h
@ -2237,8 +2261,8 @@
./table_container.lo: ../../include/net-snmp/library/lcd_time.h
./table_container.lo: ../../include/net-snmp/library/snmp_secmod.h
./table_container.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
./table_container.lo: ../../include/net-snmp/library/snmptsm.h
./table_container.lo: ../../include/net-snmp/library/snmpusm.h
./table_container.lo: ../../include/net-snmp/library/snmptsm.h
./table_container.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
./table_container.lo: ../../include/net-snmp/agent/mib_module_config.h
./table_container.lo: ../../include/net-snmp/agent/agent_module_config.h
@ -2305,7 +2329,9 @@
./table_data.lo: ../../include/net-snmp/library/snmpTCPDomain.h
./table_data.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
./table_data.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
./table_data.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
./table_data.lo: ../../include/net-snmp/library/snmpIPXDomain.h
./table_data.lo: ../../include/net-snmp/library/snmpAAL5PVCDomain.h
./table_data.lo: ../../include/net-snmp/library/ucd_compat.h
./table_data.lo: ../../include/net-snmp/library/mib.h
./table_data.lo: ../../include/net-snmp/mib_api.h
@ -2324,7 +2350,6 @@
./table_data.lo: ../../include/net-snmp/library/data_list.h
./table_data.lo: ../../include/net-snmp/library/check_varbind.h
./table_data.lo: ../../include/net-snmp/library/container.h
./table_data.lo: ../../include/net-snmp/library/factory.h
./table_data.lo: ../../include/net-snmp/library/container_binary_array.h
./table_data.lo: ../../include/net-snmp/library/container_list_ssll.h
./table_data.lo: ../../include/net-snmp/library/container_iterator.h
@ -2345,8 +2370,8 @@
./table_data.lo: ../../include/net-snmp/library/lcd_time.h
./table_data.lo: ../../include/net-snmp/library/snmp_secmod.h
./table_data.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
./table_data.lo: ../../include/net-snmp/library/snmptsm.h
./table_data.lo: ../../include/net-snmp/library/snmpusm.h
./table_data.lo: ../../include/net-snmp/library/snmptsm.h
./table_data.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
./table_data.lo: ../../include/net-snmp/agent/mib_module_config.h
./table_data.lo: ../../include/net-snmp/agent/agent_module_config.h
@ -2413,7 +2438,9 @@
./table_dataset.lo: ../../include/net-snmp/library/snmpTCPDomain.h
./table_dataset.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
./table_dataset.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
./table_dataset.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
./table_dataset.lo: ../../include/net-snmp/library/snmpIPXDomain.h
./table_dataset.lo: ../../include/net-snmp/library/snmpAAL5PVCDomain.h
./table_dataset.lo: ../../include/net-snmp/library/ucd_compat.h
./table_dataset.lo: ../../include/net-snmp/library/mib.h
./table_dataset.lo: ../../include/net-snmp/mib_api.h
@ -2432,7 +2459,6 @@
./table_dataset.lo: ../../include/net-snmp/library/data_list.h
./table_dataset.lo: ../../include/net-snmp/library/check_varbind.h
./table_dataset.lo: ../../include/net-snmp/library/container.h
./table_dataset.lo: ../../include/net-snmp/library/factory.h
./table_dataset.lo: ../../include/net-snmp/library/container_binary_array.h
./table_dataset.lo: ../../include/net-snmp/library/container_list_ssll.h
./table_dataset.lo: ../../include/net-snmp/library/container_iterator.h
@ -2453,8 +2479,8 @@
./table_dataset.lo: ../../include/net-snmp/library/lcd_time.h
./table_dataset.lo: ../../include/net-snmp/library/snmp_secmod.h
./table_dataset.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
./table_dataset.lo: ../../include/net-snmp/library/snmptsm.h
./table_dataset.lo: ../../include/net-snmp/library/snmpusm.h
./table_dataset.lo: ../../include/net-snmp/library/snmptsm.h
./table_dataset.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
./table_dataset.lo: ../../include/net-snmp/agent/mib_module_config.h
./table_dataset.lo: ../../include/net-snmp/agent/agent_module_config.h
@ -2521,7 +2547,9 @@
./table_iterator.lo: ../../include/net-snmp/library/snmpTCPDomain.h
./table_iterator.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
./table_iterator.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
./table_iterator.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
./table_iterator.lo: ../../include/net-snmp/library/snmpIPXDomain.h
./table_iterator.lo: ../../include/net-snmp/library/snmpAAL5PVCDomain.h
./table_iterator.lo: ../../include/net-snmp/library/ucd_compat.h
./table_iterator.lo: ../../include/net-snmp/library/mib.h
./table_iterator.lo: ../../include/net-snmp/mib_api.h
@ -2540,7 +2568,6 @@
./table_iterator.lo: ../../include/net-snmp/library/data_list.h
./table_iterator.lo: ../../include/net-snmp/library/check_varbind.h
./table_iterator.lo: ../../include/net-snmp/library/container.h
./table_iterator.lo: ../../include/net-snmp/library/factory.h
./table_iterator.lo: ../../include/net-snmp/library/container_binary_array.h
./table_iterator.lo: ../../include/net-snmp/library/container_list_ssll.h
./table_iterator.lo: ../../include/net-snmp/library/container_iterator.h
@ -2561,8 +2588,8 @@
./table_iterator.lo: ../../include/net-snmp/library/lcd_time.h
./table_iterator.lo: ../../include/net-snmp/library/snmp_secmod.h
./table_iterator.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
./table_iterator.lo: ../../include/net-snmp/library/snmptsm.h
./table_iterator.lo: ../../include/net-snmp/library/snmpusm.h
./table_iterator.lo: ../../include/net-snmp/library/snmptsm.h
./table_iterator.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
./table_iterator.lo: ../../include/net-snmp/agent/mib_module_config.h
./table_iterator.lo: ../../include/net-snmp/agent/agent_module_config.h
@ -2630,7 +2657,9 @@
./table_row.lo: ../../include/net-snmp/library/snmpTCPDomain.h
./table_row.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
./table_row.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
./table_row.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
./table_row.lo: ../../include/net-snmp/library/snmpIPXDomain.h
./table_row.lo: ../../include/net-snmp/library/snmpAAL5PVCDomain.h
./table_row.lo: ../../include/net-snmp/library/ucd_compat.h
./table_row.lo: ../../include/net-snmp/library/mib.h
./table_row.lo: ../../include/net-snmp/mib_api.h
@ -2649,7 +2678,6 @@
./table_row.lo: ../../include/net-snmp/library/data_list.h
./table_row.lo: ../../include/net-snmp/library/check_varbind.h
./table_row.lo: ../../include/net-snmp/library/container.h
./table_row.lo: ../../include/net-snmp/library/factory.h
./table_row.lo: ../../include/net-snmp/library/container_binary_array.h
./table_row.lo: ../../include/net-snmp/library/container_list_ssll.h
./table_row.lo: ../../include/net-snmp/library/container_iterator.h
@ -2670,8 +2698,8 @@
./table_row.lo: ../../include/net-snmp/library/lcd_time.h
./table_row.lo: ../../include/net-snmp/library/snmp_secmod.h
./table_row.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
./table_row.lo: ../../include/net-snmp/library/snmptsm.h
./table_row.lo: ../../include/net-snmp/library/snmpusm.h
./table_row.lo: ../../include/net-snmp/library/snmptsm.h
./table_row.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
./table_row.lo: ../../include/net-snmp/agent/mib_module_config.h
./table_row.lo: ../../include/net-snmp/agent/agent_module_config.h
@ -2738,7 +2766,9 @@
./table_tdata.lo: ../../include/net-snmp/library/snmpTCPDomain.h
./table_tdata.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
./table_tdata.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
./table_tdata.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
./table_tdata.lo: ../../include/net-snmp/library/snmpIPXDomain.h
./table_tdata.lo: ../../include/net-snmp/library/snmpAAL5PVCDomain.h
./table_tdata.lo: ../../include/net-snmp/library/ucd_compat.h
./table_tdata.lo: ../../include/net-snmp/library/mib.h
./table_tdata.lo: ../../include/net-snmp/mib_api.h
@ -2757,7 +2787,6 @@
./table_tdata.lo: ../../include/net-snmp/library/data_list.h
./table_tdata.lo: ../../include/net-snmp/library/check_varbind.h
./table_tdata.lo: ../../include/net-snmp/library/container.h
./table_tdata.lo: ../../include/net-snmp/library/factory.h
./table_tdata.lo: ../../include/net-snmp/library/container_binary_array.h
./table_tdata.lo: ../../include/net-snmp/library/container_list_ssll.h
./table_tdata.lo: ../../include/net-snmp/library/container_iterator.h
@ -2778,8 +2807,8 @@
./table_tdata.lo: ../../include/net-snmp/library/lcd_time.h
./table_tdata.lo: ../../include/net-snmp/library/snmp_secmod.h
./table_tdata.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
./table_tdata.lo: ../../include/net-snmp/library/snmptsm.h
./table_tdata.lo: ../../include/net-snmp/library/snmpusm.h
./table_tdata.lo: ../../include/net-snmp/library/snmptsm.h
./table_tdata.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
./table_tdata.lo: ../../include/net-snmp/agent/mib_module_config.h
./table_tdata.lo: ../../include/net-snmp/agent/agent_module_config.h
@ -2846,7 +2875,9 @@
./watcher.lo: ../../include/net-snmp/library/snmpTCPDomain.h
./watcher.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
./watcher.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
./watcher.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
./watcher.lo: ../../include/net-snmp/library/snmpIPXDomain.h
./watcher.lo: ../../include/net-snmp/library/snmpAAL5PVCDomain.h
./watcher.lo: ../../include/net-snmp/library/ucd_compat.h
./watcher.lo: ../../include/net-snmp/library/mib.h
./watcher.lo: ../../include/net-snmp/mib_api.h
@ -2865,7 +2896,6 @@
./watcher.lo: ../../include/net-snmp/library/data_list.h
./watcher.lo: ../../include/net-snmp/library/check_varbind.h
./watcher.lo: ../../include/net-snmp/library/container.h
./watcher.lo: ../../include/net-snmp/library/factory.h
./watcher.lo: ../../include/net-snmp/library/container_binary_array.h
./watcher.lo: ../../include/net-snmp/library/container_list_ssll.h
./watcher.lo: ../../include/net-snmp/library/container_iterator.h
@ -2886,8 +2916,8 @@
./watcher.lo: ../../include/net-snmp/library/lcd_time.h
./watcher.lo: ../../include/net-snmp/library/snmp_secmod.h
./watcher.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
./watcher.lo: ../../include/net-snmp/library/snmptsm.h
./watcher.lo: ../../include/net-snmp/library/snmpusm.h
./watcher.lo: ../../include/net-snmp/library/snmptsm.h
./watcher.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
./watcher.lo: ../../include/net-snmp/agent/mib_module_config.h
./watcher.lo: ../../include/net-snmp/agent/agent_module_config.h

View File

@ -32,5 +32,5 @@ LOBJS = dummy.lo
all: standardall
libnetsnmphelpers.$(LIB_EXTENSION)$(LIB_VERSION): $(LOBJS)
$(LIB_LD_CMD) $@ $(LOBJS) @LD_NO_UNDEFINED@ $(LDFLAGS) $(LIB_LD_LIBS)
$(LIB_LD_CMD) $@ $(LOBJS) $(LDFLAGS)
$(RANLIB) $@

View File

@ -13,7 +13,7 @@
#include <net-snmp/agent/table_dataset.h>
#include <net-snmp/agent/stash_cache.h>
netsnmp_feature_child_of(mib_helpers, libnetsnmpagent)
netsnmp_feature_child_of(mib_helpers, libnetsnmpagent);
/** call the initialization sequence for all handlers with init_ routines. */

View File

@ -12,11 +12,11 @@
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>
netsnmp_feature_provide(baby_steps)
netsnmp_feature_child_of(baby_steps, mib_helpers)
netsnmp_feature_provide(baby_steps);
netsnmp_feature_child_of(baby_steps, mib_helpers);
#ifdef NETSNMP_FEATURE_REQUIRE_BABY_STEPS
netsnmp_feature_require(check_requests_error)
netsnmp_feature_require(check_requests_error);
#endif
#ifndef NETSNMP_FEATURE_REMOVE_BABY_STEPS
@ -355,7 +355,7 @@ _baby_steps_helper(netsnmp_mib_handler *handler,
* handler as a run-time injectable handler for configuration file
* use.
*/
netsnmp_feature_child_of(netsnmp_baby_steps_handler_init,netsnmp_unused)
netsnmp_feature_child_of(netsnmp_baby_steps_handler_init,netsnmp_unused);
#ifndef NETSNMP_FEATURE_REMOVE_NETSNMP_BABY_STEPS_HANDLER_INIT
void
netsnmp_baby_steps_handler_init(void)

View File

@ -16,7 +16,7 @@
#include <net-snmp/net-snmp-config.h>
#include <net-snmp/net-snmp-features.h>
#if HAVE_STRING_H
#ifdef HAVE_STRING_H
#include <string.h>
#else
#include <strings.h>
@ -27,10 +27,10 @@
#include <net-snmp/agent/cache_handler.h>
netsnmp_feature_child_of(cache_handler, mib_helpers)
netsnmp_feature_child_of(cache_handler, mib_helpers);
netsnmp_feature_child_of(cache_find_by_oid, cache_handler)
netsnmp_feature_child_of(cache_get_head, cache_handler)
netsnmp_feature_child_of(cache_find_by_oid, cache_handler);
netsnmp_feature_child_of(cache_get_head, cache_handler);
static netsnmp_cache *cache_head = NULL;
static int cache_outstanding_valid = 0;
@ -457,7 +457,7 @@ _cache_handler_register(netsnmp_handler_registration * reginfo,
/** functionally the same as calling netsnmp_register_handler() but also
* injects a cache handler at the same time for you. */
netsnmp_feature_child_of(netsnmp_cache_handler_register,netsnmp_unused)
netsnmp_feature_child_of(netsnmp_cache_handler_register,netsnmp_unused);
#ifndef NETSNMP_FEATURE_REMOVE_NETSNMP_CACHE_HANDLER_REGISTER
int
netsnmp_cache_handler_register(netsnmp_handler_registration * reginfo,
@ -475,7 +475,7 @@ netsnmp_cache_handler_register(netsnmp_handler_registration * reginfo,
/** functionally the same as calling netsnmp_register_handler() but also
* injects a cache handler at the same time for you. */
netsnmp_feature_child_of(netsnmp_register_cache_handler,netsnmp_unused)
netsnmp_feature_child_of(netsnmp_register_cache_handler,netsnmp_unused);
#ifndef NETSNMP_FEATURE_REMOVE_NETSNMP_REGISTER_CACHE_HANDLER
int
netsnmp_register_cache_handler(netsnmp_handler_registration * reginfo,
@ -538,7 +538,7 @@ netsnmp_cache_reqinfo_extract(netsnmp_agent_request_info * reqinfo,
}
/** Extract the cache information for a given request (PDU) */
netsnmp_feature_child_of(netsnmp_extract_cache_info,netsnmp_unused)
netsnmp_feature_child_of(netsnmp_extract_cache_info,netsnmp_unused);
#ifndef NETSNMP_FEATURE_REMOVE_NETSNMP_EXTRACT_CACHE_INFO
netsnmp_cache *
netsnmp_extract_cache_info(netsnmp_agent_request_info * reqinfo)
@ -594,7 +594,7 @@ netsnmp_cache_is_valid(netsnmp_agent_request_info * reqinfo,
/** Is the cache valid for a given request?
* for backwards compatability. netsnmp_cache_is_valid() is preferred.
*/
netsnmp_feature_child_of(netsnmp_is_cache_valid,netsnmp_unused)
netsnmp_feature_child_of(netsnmp_is_cache_valid,netsnmp_unused);
#ifndef NETSNMP_FEATURE_REMOVE_NETSNMP_IS_CACHE_VALID
int
netsnmp_is_cache_valid(netsnmp_agent_request_info * reqinfo)

View File

@ -26,7 +26,7 @@
* All debugging output is done via the standard debugging routines
* with a token name of "helper:debug", so use the -Dhelper:debug
* command line flag to see the output when running the snmpd
* demon. It's not recommended you compile this into a handler chain
* daemon. It's not recommended you compile this into a handler chain
* during compile time, but instead use the "injectHandler" token in
* the snmpd.conf file (or similar) to add it to the chain later:
*

View File

@ -22,7 +22,7 @@
#include <net-snmp/agent/instance.h>
#include <stdlib.h>
#if HAVE_STRING_H
#ifdef HAVE_STRING_H
#include <string.h>
#else
#include <strings.h>
@ -32,8 +32,8 @@
#include <net-snmp/agent/serialize.h>
#include <net-snmp/agent/read_only.h>
netsnmp_feature_provide(instance)
netsnmp_feature_child_of(instance, mib_helpers)
netsnmp_feature_provide(instance);
netsnmp_feature_child_of(instance, mib_helpers);
typedef struct netsnmp_num_file_instance_s {
int refcnt;
@ -214,7 +214,7 @@ get_reg(const char *name,
#endif /* NETSNMP_FEATURE_REMOVE_REGISTER_NUM_FILE_INSTANCE */
/* Watched 'long' instances are writable on both 32-bit and 64-bit systems */
netsnmp_feature_child_of(read_only_ulong_instance,instance)
netsnmp_feature_child_of(read_only_ulong_instance,instance);
#ifndef NETSNMP_FEATURE_REMOVE_READ_ONLY_ULONG_INSTANCE
int
netsnmp_register_read_only_ulong_instance(const char *name,
@ -232,7 +232,7 @@ netsnmp_register_read_only_ulong_instance(const char *name,
}
#endif /* NETSNMP_FEATURE_REMOVE_READ_ONLY_ULONG_INSTANCE */
netsnmp_feature_child_of(ulong_instance,instance)
netsnmp_feature_child_of(ulong_instance,instance);
#ifndef NETSNMP_FEATURE_REMOVE_ULONG_INSTANCE
int
netsnmp_register_ulong_instance(const char *name,
@ -249,7 +249,7 @@ netsnmp_register_ulong_instance(const char *name,
}
#endif /* NETSNMP_FEATURE_REMOVE_ULONG_INSTANCE */
netsnmp_feature_child_of(read_only_counter32_instance,instance)
netsnmp_feature_child_of(read_only_counter32_instance,instance);
#ifndef NETSNMP_FEATURE_REMOVE_READ_ONLY_COUNTER32_INSTANCE
int
netsnmp_register_read_only_counter32_instance(const char *name,
@ -268,7 +268,7 @@ netsnmp_register_read_only_counter32_instance(const char *name,
}
#endif /* NETSNMP_FEATURE_REMOVE_READ_ONLY_COUNTER32_INSTANCE */
netsnmp_feature_child_of(read_only_long_instance,instance)
netsnmp_feature_child_of(read_only_long_instance,instance);
#ifndef NETSNMP_FEATURE_REMOVE_READ_ONLY_LONG_INSTANCE
int
netsnmp_register_read_only_long_instance(const char *name,
@ -285,7 +285,7 @@ netsnmp_register_read_only_long_instance(const char *name,
}
#endif /* NETSNMP_FEATURE_REMOVE_READ_ONLY_LONG_INSTANCE */
netsnmp_feature_child_of(long_instance,instance)
netsnmp_feature_child_of(long_instance,instance);
#ifndef NETSNMP_FEATURE_REMOVE_LONG_INSTANCE
int
netsnmp_register_long_instance(const char *name,
@ -301,7 +301,7 @@ netsnmp_register_long_instance(const char *name,
#endif /* NETSNMP_FEATURE_REMOVE_LONG_INSTANCE */
/* Watched 'int' instances are only writable on 32-bit systems */
netsnmp_feature_child_of(read_only_uint_instance,instance)
netsnmp_feature_child_of(read_only_uint_instance,instance);
#ifndef NETSNMP_FEATURE_REMOVE_READ_ONLY_UINT_INSTANCE
int
netsnmp_register_read_only_uint_instance(const char *name,
@ -319,7 +319,7 @@ netsnmp_register_read_only_uint_instance(const char *name,
}
#endif /* NETSNMP_FEATURE_REMOVE_READ_ONLY_UINT_INSTANCE */
netsnmp_feature_child_of(uint_instance,instance)
netsnmp_feature_child_of(uint_instance,instance);
#ifndef NETSNMP_FEATURE_REMOVE_UINT_INSTANCE
int
netsnmp_register_uint_instance(const char *name,
@ -335,7 +335,7 @@ netsnmp_register_uint_instance(const char *name,
}
#endif /* NETSNMP_FEATURE_REMOVE_UINT_INSTANCE */
netsnmp_feature_child_of(read_only_int_instance,instance)
netsnmp_feature_child_of(read_only_int_instance,instance);
#ifndef NETSNMP_FEATURE_REMOVE_READ_ONLY_INT_INSTANCE
int
netsnmp_register_read_only_int_instance(const char *name,
@ -353,7 +353,7 @@ netsnmp_register_read_only_int_instance(const char *name,
/*
* Compatibility with earlier (inconsistently named) routine
*/
netsnmp_feature_child_of(register_read_only_int_instance,netsnmp_unused)
netsnmp_feature_child_of(register_read_only_int_instance,netsnmp_unused);
#ifndef NETSNMP_FEATURE_REMOVE_REGISTER_READ_ONLY_INT_INSTANCE
int
register_read_only_int_instance(const char *name,
@ -370,7 +370,7 @@ register_read_only_int_instance(const char *name,
* Context registrations
*/
netsnmp_feature_child_of(register_read_only_ulong_instance_context,instance)
netsnmp_feature_child_of(register_read_only_ulong_instance_context,instance);
#ifndef NETSNMP_FEATURE_REMOVE_REGISTER_READ_ONLY_ULONG_INSTANCE_CONTEXT
int
netsnmp_register_read_only_ulong_instance_context(const char *name,
@ -392,7 +392,7 @@ netsnmp_register_read_only_ulong_instance_context(const char *name,
}
#endif /* NETSNMP_FEATURE_REMOVE_REGISTER_READ_ONLY_ULONG_INSTANCE_CONTEXT */
netsnmp_feature_child_of(register_ulong_instance_context,instance)
netsnmp_feature_child_of(register_ulong_instance_context,instance);
#ifndef NETSNMP_FEATURE_REMOVE_REGISTER_ULONG_INSTANCE_CONTEXT
int
netsnmp_register_ulong_instance_context(const char *name,
@ -412,7 +412,7 @@ netsnmp_register_ulong_instance_context(const char *name,
}
#endif /* NETSNMP_FEATURE_REMOVE_REGISTER_ULONG_INSTANCE_CONTEXT */
netsnmp_feature_child_of(register_read_only_counter32_instance_context,instance)
netsnmp_feature_child_of(register_read_only_counter32_instance_context,instance);
#ifndef NETSNMP_FEATURE_REMOVE_REGISTER_READ_ONLY_COUNTER32_INSTANCE_CONTEXT
int
netsnmp_register_read_only_counter32_instance_context(const char *name,
@ -434,7 +434,7 @@ netsnmp_register_read_only_counter32_instance_context(const char *name,
}
#endif /* NETSNMP_FEATURE_REMOVE_REGISTER_READ_ONLY_COUNTER32_INSTANCE_CONTEXT */
netsnmp_feature_child_of(register_read_only_long_instance_context,instance)
netsnmp_feature_child_of(register_read_only_long_instance_context,instance);
#ifndef NETSNMP_FEATURE_REMOVE_REGISTER_READ_ONLY_LONG_INSTANCE_CONTEXT
int
netsnmp_register_read_only_long_instance_context(const char *name,
@ -456,7 +456,7 @@ netsnmp_register_read_only_long_instance_context(const char *name,
}
#endif /* NETSNMP_FEATURE_REMOVE_REGISTER_READ_ONLY_LONG_INSTANCE_CONTEXT */
netsnmp_feature_child_of(register_long_instance_context,instance)
netsnmp_feature_child_of(register_long_instance_context,instance);
#ifndef NETSNMP_FEATURE_REMOVE_REGISTER_LONG_INSTANCE_CONTEXT
int
netsnmp_register_long_instance_context(const char *name,
@ -476,7 +476,7 @@ netsnmp_register_long_instance_context(const char *name,
}
#endif /* NETSNMP_FEATURE_REMOVE_REGISTER_LONG_INSTANCE_CONTEXT */
netsnmp_feature_child_of(register_int_instance_context,instance)
netsnmp_feature_child_of(register_int_instance_context,instance);
#ifndef NETSNMP_FEATURE_REMOVE_REGISTER_INT_INSTANCE_CONTEXT
int
netsnmp_register_int_instance_context(const char *name,
@ -497,7 +497,7 @@ netsnmp_register_int_instance_context(const char *name,
}
#endif /* NETSNMP_FEATURE_REMOVE_REGISTER_INT_INSTANCE_CONTEXT */
netsnmp_feature_child_of(register_read_only_int_instance_context,instance)
netsnmp_feature_child_of(register_read_only_int_instance_context,instance);
#ifndef NETSNMP_FEATURE_REMOVE_REGISTER_READ_ONLY_INT_INSTANCE_CONTEXT
int
netsnmp_register_read_only_int_instance_context(const char *name,
@ -521,7 +521,7 @@ netsnmp_register_read_only_int_instance_context(const char *name,
/*
* Compatibility with earlier (inconsistently named) routine
*/
netsnmp_feature_child_of(read_only_int_instance_context,instance)
netsnmp_feature_child_of(read_only_int_instance_context,instance);
#ifndef NETSNMP_FEATURE_REMOVE_READ_ONLY_INT_INSTANCE_CONTEXT
int
register_read_only_int_instance_context(const char *name,
@ -537,7 +537,7 @@ register_read_only_int_instance_context(const char *name,
}
#endif /* NETSNMP_FEATURE_REMOVE_READ_ONLY_INT_INSTANCE_CONTEXT */
netsnmp_feature_child_of(register_num_file_instance,instance)
netsnmp_feature_child_of(register_num_file_instance,instance);
#ifndef NETSNMP_FEATURE_REMOVE_REGISTER_NUM_FILE_INSTANCE
int
netsnmp_register_num_file_instance(const char *name,
@ -581,7 +581,7 @@ netsnmp_register_num_file_instance(const char *name,
}
#endif /* NETSNMP_FEATURE_REMOVE_REGISTER_NUM_FILE_INSTANCE */
netsnmp_feature_child_of(register_int_instance,instance)
netsnmp_feature_child_of(register_int_instance,instance);
#ifndef NETSNMP_FEATURE_REMOVE_REGISTER_INT_INSTANCE
/**
* This function registers an int helper handler to a specified OID.

View File

@ -16,8 +16,8 @@
#include <net-snmp/agent/mode_end_call.h>
netsnmp_feature_provide(mode_end_call)
netsnmp_feature_child_of(mode_end_call, mib_helpers)
netsnmp_feature_provide(mode_end_call);
netsnmp_feature_child_of(mode_end_call, mib_helpers);
#ifndef NETSNMP_FEATURE_REMOVE_MODE_END_CALL
/** @defgroup mode_end_call mode_end_call

View File

@ -15,7 +15,7 @@
#include <net-snmp/agent/null.h>
#if HAVE_STRING_H
#ifdef HAVE_STRING_H
#include <string.h>
#else
#include <strings.h>

View File

@ -15,7 +15,7 @@
#include <net-snmp/agent/old_api.h>
#if HAVE_STRING_H
#ifdef HAVE_STRING_H
#include <string.h>
#else
#include <strings.h>
@ -25,6 +25,17 @@
#include <stddef.h>
/*
* mib clients are passed a pointer to a oid buffer. Some mib clients
* * (namely, those first noticed in mibII/vacm.c) modify this oid buffer
* * before they determine if they really need to send results back out
* * using it. If the master agent determined that the client was not the
* * right one to talk with, it will use the same oid buffer to pass to the
* * rest of the clients, which may not longer be valid. This should be
* * fixed in all clients rather than the master. However, its not a
* * particularily easy bug to track down so this saves debugging time at
* * the expense of a few memcpy's.
*/
#define MIB_CLIENTS_ARE_EVIL 1
#ifdef HAVE_DMALLOC_H
@ -270,7 +281,7 @@ netsnmp_old_api_helper(netsnmp_mib_handler *handler,
netsnmp_request_info *requests)
{
#if MIB_CLIENTS_ARE_EVIL
#ifdef MIB_CLIENTS_ARE_EVIL
oid save[MAX_OID_LEN];
size_t savelen = 0;
#endif
@ -278,7 +289,7 @@ netsnmp_old_api_helper(netsnmp_mib_handler *handler,
int exact = 1;
int status;
struct variable *vp;
struct variable *const vp = handler->myvoid;
netsnmp_old_api_cache *cacheptr;
netsnmp_agent_session *oldasp = NULL;
u_char *access = NULL;
@ -287,8 +298,6 @@ netsnmp_old_api_helper(netsnmp_mib_handler *handler,
size_t tmp_len;
oid tmp_name[MAX_OID_LEN];
vp = (struct variable *) handler->myvoid;
/*
* create old variable structure with right information
*/
@ -308,7 +317,7 @@ netsnmp_old_api_helper(netsnmp_mib_handler *handler,
for (; requests; requests = requests->next) {
#if MIB_CLIENTS_ARE_EVIL
#ifdef MIB_CLIENTS_ARE_EVIL
savelen = requests->requestvb->name_length;
memcpy(save, requests->requestvb->name, savelen * sizeof(oid));
#endif
@ -322,7 +331,7 @@ netsnmp_old_api_helper(netsnmp_mib_handler *handler,
/*
* Actually call the old mib-module function
*/
if (vp && vp->findVar) {
if (vp->findVar) {
tmp_len = requests->requestvb->name_length*sizeof(oid);
memcpy(tmp_name, requests->requestvb->name, tmp_len);
/** clear the rest of tmp_name to keep valgrind happy */
@ -361,7 +370,7 @@ netsnmp_old_api_helper(netsnmp_mib_handler *handler,
/*
* no result returned
*/
#if MIB_CLIENTS_ARE_EVIL
#ifdef MIB_CLIENTS_ARE_EVIL
if (access == NULL) {
if (netsnmp_oid_equals(requests->requestvb->name,
requests->requestvb->name_length,

View File

@ -17,15 +17,17 @@
#include <net-snmp/agent/row_merge.h>
#if HAVE_STRING_H
#include <stdint.h>
#ifdef HAVE_STRING_H
#include <string.h>
#else
#include <strings.h>
#endif
netsnmp_feature_provide(row_merge)
netsnmp_feature_child_of(row_merge, row_merge_all)
netsnmp_feature_child_of(row_merge_all, mib_helpers)
netsnmp_feature_provide(row_merge);
netsnmp_feature_child_of(row_merge, row_merge_all);
netsnmp_feature_child_of(row_merge_all, mib_helpers);
#ifndef NETSNMP_FEATURE_REMOVE_ROW_MERGE
@ -56,7 +58,7 @@ netsnmp_get_row_merge_handler(int prefix_len)
/** functionally the same as calling netsnmp_register_handler() but also
* injects a row_merge handler at the same time for you. */
netsnmp_feature_child_of(register_row_merge, row_merge_all)
netsnmp_feature_child_of(register_row_merge, row_merge_all);
#ifndef NETSNMP_FEATURE_REMOVE_REGISTER_ROW_MERGE
int
netsnmp_register_row_merge(netsnmp_handler_registration *reginfo)

View File

@ -21,7 +21,7 @@
#include <net-snmp/agent/scalar.h>
#include <stdlib.h>
#if HAVE_STRING_H
#ifdef HAVE_STRING_H
#include <string.h>
#else
#include <strings.h>

View File

@ -17,7 +17,7 @@
#include <net-snmp/agent/scalar_group.h>
#include <stdlib.h>
#if HAVE_STRING_H
#ifdef HAVE_STRING_H
#include <string.h>
#else
#include <strings.h>

View File

@ -13,15 +13,15 @@
#include <net-snmp/net-snmp-features.h>
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>
#include <net-snmp/agent/snmp_get_statistic.h>
#include <stdint.h>
netsnmp_feature_provide(helper_statistics)
netsnmp_feature_child_of(helper_statistics, mib_helpers)
netsnmp_feature_provide(helper_statistics);
netsnmp_feature_child_of(helper_statistics, mib_helpers);
#ifdef NETSNMP_FEATURE_REQUIRE_HELPER_STATISTICS
/* if we're not needed, then neither is this */
netsnmp_feature_require(statistics)
netsnmp_feature_require(statistics);
#endif
#ifndef NETSNMP_FEATURE_REMOVE_HELPER_STATISTICS

View File

@ -4,12 +4,12 @@
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>
netsnmp_feature_provide(stash_cache)
netsnmp_feature_child_of(stash_cache, mib_helpers)
netsnmp_feature_provide(stash_cache);
netsnmp_feature_child_of(stash_cache, mib_helpers);
#ifdef NETSNMP_FEATURE_REQUIRE_STASH_CACHE
netsnmp_feature_require(oid_stash)
netsnmp_feature_require(oid_stash_iterate)
netsnmp_feature_require(oid_stash_get_data)
netsnmp_feature_require(oid_stash);
netsnmp_feature_require(oid_stash_iterate);
netsnmp_feature_require(oid_stash_get_data);
#endif
#ifndef NETSNMP_FEATURE_REMOVE_STASH_CACHE

View File

@ -4,12 +4,12 @@
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>
netsnmp_feature_provide(stash_to_next)
netsnmp_feature_child_of(stash_to_next, mib_helpers)
netsnmp_feature_provide(stash_to_next);
netsnmp_feature_child_of(stash_to_next, mib_helpers);
#ifdef NETSNMP_FEATURE_REQUIRE_STASH_TO_NEXT
netsnmp_feature_require(oid_stash)
netsnmp_feature_require(oid_stash_add_data)
netsnmp_feature_require(oid_stash);
netsnmp_feature_require(oid_stash_add_data);
#endif
#ifndef NETSNMP_FEATURE_REMOVE_STASH_TO_NEXT

View File

@ -33,10 +33,10 @@
#include <net-snmp/agent/table.h>
#ifndef NETSNMP_NO_WRITE_SUPPORT
netsnmp_feature_require(oid_stash)
netsnmp_feature_require(oid_stash);
#endif /* !NETSNMP_NO_WRITE_SUPPORT */
#if HAVE_STRING_H
#ifdef HAVE_STRING_H
#include <string.h>
#else
#include <strings.h>
@ -44,12 +44,12 @@ netsnmp_feature_require(oid_stash)
#include <net-snmp/library/snmp_assert.h>
netsnmp_feature_child_of(table_all, mib_helpers)
netsnmp_feature_child_of(table_all, mib_helpers);
netsnmp_feature_child_of(table_build_result, table_all)
netsnmp_feature_child_of(table_get_or_create_row_stash, table_all)
netsnmp_feature_child_of(registration_owns_table_info, table_all)
netsnmp_feature_child_of(table_sparse, table_all)
netsnmp_feature_child_of(table_build_result, table_all);
netsnmp_feature_child_of(table_get_or_create_row_stash, table_all);
netsnmp_feature_child_of(registration_owns_table_info, table_all);
netsnmp_feature_child_of(table_sparse, table_all);
static void table_helper_cleanup(netsnmp_agent_request_info *reqinfo,
netsnmp_request_info *request,
@ -998,7 +998,8 @@ netsnmp_update_indexes_from_variable_list(netsnmp_table_request_info *tri)
if (!tri)
return SNMPERR_GENERR;
return build_oid_noalloc(tri->index_oid, sizeof(tri->index_oid),
return build_oid_noalloc(tri->index_oid,
sizeof(tri->index_oid) / sizeof(tri->index_oid[0]),
&tri->index_oid_len, NULL, 0, tri->indexes);
}

View File

@ -20,7 +20,7 @@
#include <net-snmp/agent/table_array.h>
#if HAVE_STRING_H
#ifdef HAVE_STRING_H
#include <string.h>
#else
#include <strings.h>
@ -30,12 +30,12 @@
#include <net-snmp/library/container.h>
#include <net-snmp/library/snmp_assert.h>
netsnmp_feature_child_of(table_array_all, mib_helpers)
netsnmp_feature_child_of(table_array_all, mib_helpers);
netsnmp_feature_child_of(table_array_register,table_array_all)
netsnmp_feature_child_of(table_array_find_table_array_handler,table_array_all)
netsnmp_feature_child_of(table_array_extract_array_context,table_array_all)
netsnmp_feature_child_of(table_array_check_row_status,table_array_all)
netsnmp_feature_child_of(table_array_register,table_array_all);
netsnmp_feature_child_of(table_array_find_table_array_handler,table_array_all);
netsnmp_feature_child_of(table_array_extract_array_context,table_array_all);
netsnmp_feature_child_of(table_array_check_row_status,table_array_all);
#ifndef NETSNMP_FEATURE_REMOVE_TABLE_CONTAINER

View File

@ -20,7 +20,7 @@
#include <net-snmp/agent/table_container.h>
#if HAVE_STRING_H
#ifdef HAVE_STRING_H
#include <string.h>
#else
#include <strings.h>
@ -30,14 +30,14 @@
#include <net-snmp/library/container.h>
#include <net-snmp/library/snmp_assert.h>
netsnmp_feature_provide(table_container)
netsnmp_feature_child_of(table_container, table_container_all)
netsnmp_feature_child_of(table_container_replace_row, table_container_all)
netsnmp_feature_child_of(table_container_extract, table_container_all)
netsnmp_feature_child_of(table_container_management, table_container_all)
netsnmp_feature_child_of(table_container_row_remove, table_container_all)
netsnmp_feature_child_of(table_container_row_insert, table_container_all)
netsnmp_feature_child_of(table_container_all, mib_helpers)
netsnmp_feature_provide(table_container);
netsnmp_feature_child_of(table_container, table_container_all);
netsnmp_feature_child_of(table_container_replace_row, table_container_all);
netsnmp_feature_child_of(table_container_extract, table_container_all);
netsnmp_feature_child_of(table_container_management, table_container_all);
netsnmp_feature_child_of(table_container_row_remove, table_container_all);
netsnmp_feature_child_of(table_container_row_insert, table_container_all);
netsnmp_feature_child_of(table_container_all, mib_helpers);
#ifndef NETSNMP_FEATURE_REMOVE_TABLE_CONTAINER

View File

@ -17,7 +17,7 @@
#include <net-snmp/agent/table_data.h>
#if HAVE_STRING_H
#ifdef HAVE_STRING_H
#include <string.h>
#else
#include <strings.h>
@ -26,24 +26,24 @@
#include <net-snmp/agent/table.h>
#include <net-snmp/agent/read_only.h>
netsnmp_feature_child_of(table_data_all, mib_helpers)
netsnmp_feature_child_of(table_data_all, mib_helpers);
netsnmp_feature_child_of(table_data, table_data_all)
netsnmp_feature_child_of(register_read_only_table_data, table_data_all)
netsnmp_feature_child_of(extract_table_row_data, table_data_all)
netsnmp_feature_child_of(insert_table_row, table_data_all)
netsnmp_feature_child_of(table_data_delete_table, table_data_all)
netsnmp_feature_child_of(table_data, table_data_all);
netsnmp_feature_child_of(register_read_only_table_data, table_data_all);
netsnmp_feature_child_of(extract_table_row_data, table_data_all);
netsnmp_feature_child_of(insert_table_row, table_data_all);
netsnmp_feature_child_of(table_data_delete_table, table_data_all);
netsnmp_feature_child_of(table_data_extras, table_data_all)
netsnmp_feature_child_of(table_data_extras, table_data_all);
netsnmp_feature_child_of(table_data_create_table, table_data_extras)
netsnmp_feature_child_of(table_data_create_row, table_data_extras)
netsnmp_feature_child_of(table_data_copy_row, table_data_extras)
netsnmp_feature_child_of(table_data_remove_delete_row, table_data_extras)
netsnmp_feature_child_of(table_data_unregister, table_data_extras)
netsnmp_feature_child_of(table_data_row_count, table_data_extras)
netsnmp_feature_child_of(table_data_row_operations, table_data_extras)
netsnmp_feature_child_of(table_data_row_first, table_data_extras)
netsnmp_feature_child_of(table_data_create_table, table_data_extras);
netsnmp_feature_child_of(table_data_create_row, table_data_extras);
netsnmp_feature_child_of(table_data_copy_row, table_data_extras);
netsnmp_feature_child_of(table_data_remove_delete_row, table_data_extras);
netsnmp_feature_child_of(table_data_unregister, table_data_extras);
netsnmp_feature_child_of(table_data_row_count, table_data_extras);
netsnmp_feature_child_of(table_data_row_operations, table_data_extras);
netsnmp_feature_child_of(table_data_row_first, table_data_extras);
#ifndef NETSNMP_FEATURE_REMOVE_TABLE_DATA

View File

@ -18,38 +18,38 @@
#include <net-snmp/agent/table_dataset.h>
#if HAVE_STRING_H
#ifdef HAVE_STRING_H
#include <string.h>
#else
#include <strings.h>
#endif
netsnmp_feature_child_of(table_dataset_all, mib_helpers)
netsnmp_feature_child_of(table_dataset, table_dataset_all)
netsnmp_feature_child_of(table_dataset_remove_row, table_dataset_all)
netsnmp_feature_child_of(table_data_set_column, table_dataset_all)
netsnmp_feature_child_of(table_dataset_get_newrow, table_dataset_all)
netsnmp_feature_child_of(table_set_add_indexes, table_dataset_all)
netsnmp_feature_child_of(delete_table_data_set, table_dataset_all)
netsnmp_feature_child_of(table_set_multi_add_default_row, table_dataset_all)
netsnmp_feature_child_of(table_dataset_unregister_auto_data_table, table_dataset_all)
netsnmp_feature_child_of(table_dataset_all, mib_helpers);
netsnmp_feature_child_of(table_dataset, table_dataset_all);
netsnmp_feature_child_of(table_dataset_remove_row, table_dataset_all);
netsnmp_feature_child_of(table_data_set_column, table_dataset_all);
netsnmp_feature_child_of(table_dataset_get_newrow, table_dataset_all);
netsnmp_feature_child_of(table_set_add_indexes, table_dataset_all);
netsnmp_feature_child_of(delete_table_data_set, table_dataset_all);
netsnmp_feature_child_of(table_set_multi_add_default_row, table_dataset_all);
netsnmp_feature_child_of(table_dataset_unregister_auto_data_table, table_dataset_all);
#ifdef NETSNMP_FEATURE_REQUIRE_TABLE_DATASET
netsnmp_feature_require(table_get_or_create_row_stash)
netsnmp_feature_require(table_data_delete_table)
netsnmp_feature_require(table_data)
netsnmp_feature_require(oid_stash_get_data)
netsnmp_feature_require(oid_stash_add_data)
netsnmp_feature_require(table_get_or_create_row_stash);
netsnmp_feature_require(table_data_delete_table);
netsnmp_feature_require(table_data);
netsnmp_feature_require(oid_stash_get_data);
netsnmp_feature_require(oid_stash_add_data);
#endif /* NETSNMP_FEATURE_REQUIRE_TABLE_DATASET */
#ifndef NETSNMP_FEATURE_REMOVE_TABLE_DATASET
#ifndef NETSNMP_NO_WRITE_SUPPORT
netsnmp_feature_require(oid_stash)
netsnmp_feature_require(oid_stash);
#endif /* !NETSNMP_NO_WRITE_SUPPORT */
#ifndef NETSNMP_DISABLE_MIB_LOADING
netsnmp_feature_require(mib_to_asn_type)
netsnmp_feature_require(mib_to_asn_type);
#endif /* NETSNMP_DISABLE_MIB_LOADING */
static netsnmp_data_list *auto_tables;

View File

@ -95,7 +95,7 @@
#include <net-snmp/agent/table_iterator.h>
#if HAVE_STRING_H
#ifdef HAVE_STRING_H
#include <string.h>
#else
#include <strings.h>
@ -105,16 +105,16 @@
#include <net-snmp/agent/serialize.h>
#include <net-snmp/agent/stash_cache.h>
netsnmp_feature_child_of(table_iterator_all, mib_helpers)
netsnmp_feature_child_of(table_iterator_all, mib_helpers);
netsnmp_feature_child_of(table_iterator_insert_context, table_iterator_all)
netsnmp_feature_child_of(table_iterator_create_table, table_iterator_all)
netsnmp_feature_child_of(table_iterator_row_first, table_iterator_all)
netsnmp_feature_child_of(table_iterator_row_count, table_iterator_all)
netsnmp_feature_child_of(table_iterator_insert_context, table_iterator_all);
netsnmp_feature_child_of(table_iterator_create_table, table_iterator_all);
netsnmp_feature_child_of(table_iterator_row_first, table_iterator_all);
netsnmp_feature_child_of(table_iterator_row_count, table_iterator_all);
#ifdef NETSNMP_FEATURE_REQUIRE_STASH_CACHE
netsnmp_feature_require(data_list_get_list_node)
netsnmp_feature_require(oid_stash_add_data)
netsnmp_feature_require(data_list_get_list_node);
netsnmp_feature_require(oid_stash_add_data);
#endif /* NETSNMP_FEATURE_REQUIRE_STASH_CACHE */
/* ==================================
@ -850,7 +850,8 @@ netsnmp_table_iterator_helper_handler(netsnmp_mib_handler *handler,
netsnmp_request_get_list_data(request,
TI_REQUEST_CACHE);
if (!ti_info->results) {
int nc;
int nc;
table_info = netsnmp_extract_table_info(request);
nc = netsnmp_table_next_column(table_info);
if (0 == nc) {
@ -858,7 +859,6 @@ netsnmp_table_iterator_helper_handler(netsnmp_mib_handler *handler,
snmp_set_var_objid(request->requestvb,
coloid, reginfo->rootoid_len+2);
request->processed = TABLE_ITERATOR_NOTAGAIN;
break;
} else {
table_info->colnum = nc;
hintok = 0;

View File

@ -17,7 +17,7 @@
#include <net-snmp/net-snmp-config.h>
#include <net-snmp/net-snmp-features.h>
#if HAVE_STRING_H
#ifdef HAVE_STRING_H
#include <string.h>
#else
#include <strings.h>
@ -31,9 +31,9 @@
#include <net-snmp/library/container.h>
#include <net-snmp/library/snmp_assert.h>
netsnmp_feature_child_of(table_row_all, mib_helpers)
netsnmp_feature_child_of(table_row_all, mib_helpers);
netsnmp_feature_child_of(table_row_extract, table_row_all)
netsnmp_feature_child_of(table_row_extract, table_row_all);
/*

View File

@ -17,7 +17,7 @@
#include <net-snmp/agent/table_tdata.h>
#if HAVE_STRING_H
#ifdef HAVE_STRING_H
#include <string.h>
#else
#include <strings.h>
@ -27,21 +27,17 @@
#include <net-snmp/agent/table_container.h>
#include <net-snmp/agent/read_only.h>
#if HAVE_DMALLOC_H
#include <dmalloc.h>
#endif
netsnmp_feature_child_of(table_tdata_all, mib_helpers)
netsnmp_feature_child_of(table_tdata, table_tdata_all)
netsnmp_feature_child_of(table_tdata_delete_table, table_tdata_all)
netsnmp_feature_child_of(table_tdata_extract_table, table_tdata_all)
netsnmp_feature_child_of(table_tdata_remove_row, table_tdata_all)
netsnmp_feature_child_of(table_tdata_insert_row, table_tdata_all)
netsnmp_feature_child_of(table_tdata_all, mib_helpers);
netsnmp_feature_child_of(table_tdata, table_tdata_all);
netsnmp_feature_child_of(table_tdata_delete_table, table_tdata_all);
netsnmp_feature_child_of(table_tdata_extract_table, table_tdata_all);
netsnmp_feature_child_of(table_tdata_remove_row, table_tdata_all);
netsnmp_feature_child_of(table_tdata_insert_row, table_tdata_all);
#ifdef NETSNMP_FEATURE_REQUIRE_TABLE_TDATA
netsnmp_feature_require(table_container_row_insert)
netsnmp_feature_require(table_container_row_insert);
#ifdef NETSNMP_FEATURE_REQUIRE_TABLE_TDATA_REMOVE_ROW
netsnmp_feature_require(table_container_row_remove)
netsnmp_feature_require(table_container_row_remove);
#endif /* NETSNMP_FEATURE_REQUIRE_TABLE_TDATA_REMOVE_ROW */
#endif /* NETSNMP_FEATURE_REQUIRE_TABLE_TDATA */
@ -127,7 +123,7 @@ netsnmp_tdata_create_row(void)
}
/** clones a 'tdata' row. DOES NOT CLONE THE TABLE-SPECIFIC ENTRY DATA. */
netsnmp_feature_child_of(tdata_clone_row, table_tdata_all)
netsnmp_feature_child_of(tdata_clone_row, table_tdata_all);
#ifndef NETSNMP_FEATURE_REMOVE_TDATA_CLONE_ROW
netsnmp_tdata_row *
netsnmp_tdata_clone_row(netsnmp_tdata_row *row)
@ -165,7 +161,7 @@ netsnmp_tdata_clone_row(netsnmp_tdata_row *row)
/** copy the contents of a 'tdata' row.
DOES NOT COPY THE TABLE-SPECIFIC ENTRY DATA. */
netsnmp_feature_child_of(tdata_copy_row, table_tdata_all)
netsnmp_feature_child_of(tdata_copy_row, table_tdata_all);
#ifndef NETSNMP_FEATURE_REMOVE_TDATA_COPY_ROW
int
netsnmp_tdata_copy_row(netsnmp_tdata_row *dst_row, netsnmp_tdata_row *src_row)
@ -267,7 +263,7 @@ netsnmp_tdata_add_row(netsnmp_tdata *table,
}
/** swaps out origrow with newrow. This does *not* delete/free anything! */
netsnmp_feature_child_of(tdata_replace_row, table_tdata_all)
netsnmp_feature_child_of(tdata_replace_row, table_tdata_all);
#ifndef NETSNMP_FEATURE_REMOVE_TDATA_REPLACE_ROW
void
netsnmp_tdata_replace_row(netsnmp_tdata *table,
@ -428,7 +424,7 @@ netsnmp_tdata_register(netsnmp_handler_registration *reginfo,
table->container, TABLE_CONTAINER_KEY_NETSNMP_INDEX);
}
netsnmp_feature_child_of(tdata_unregister, table_tdata_all)
netsnmp_feature_child_of(tdata_unregister, table_tdata_all);
#ifndef NETSNMP_FEATURE_REMOVE_TDATA_UNREGISTER
int
netsnmp_tdata_unregister(netsnmp_handler_registration *reginfo)
@ -449,7 +445,7 @@ netsnmp_tdata_extract_table(netsnmp_request_info *request)
#endif /* NETSNMP_FEATURE_REMOVE_TABLE_TDATA_EXTRACT_TABLE */
/** extracts the tdata container from the request structure */
netsnmp_feature_child_of(tdata_extract_container, table_tdata_all)
netsnmp_feature_child_of(tdata_extract_container, table_tdata_all);
#ifndef NETSNMP_FEATURE_REMOVE_TDATA_EXTRACT_CONTAINER
netsnmp_container *
netsnmp_tdata_extract_container(netsnmp_request_info *request)
@ -596,7 +592,7 @@ netsnmp_tdata_row_next_byoid(netsnmp_tdata *table,
return (netsnmp_tdata_row*)CONTAINER_NEXT( table->container, &index );
}
netsnmp_feature_child_of(tdata_row_count, table_tdata_all)
netsnmp_feature_child_of(tdata_row_count, table_tdata_all);
#ifndef NETSNMP_FEATURE_REMOVE_TDATA_ROW_COUNT
int
netsnmp_tdata_row_count(netsnmp_tdata *table)
@ -615,7 +611,7 @@ netsnmp_tdata_row_count(netsnmp_tdata *table)
/** compare a row with the given index values */
netsnmp_feature_child_of(tdata_compare_idx, table_tdata_all)
netsnmp_feature_child_of(tdata_compare_idx, table_tdata_all);
#ifndef NETSNMP_FEATURE_REMOVE_TDATA_COMPARE_IDX
int
netsnmp_tdata_compare_idx(netsnmp_tdata_row *row,

View File

@ -31,18 +31,18 @@ static void free_wrapper(void * p)
#define free_wrapper free
#endif
netsnmp_feature_provide(watcher_all)
netsnmp_feature_child_of(watcher_all, mib_helpers)
netsnmp_feature_child_of(watcher_create_info6, watcher_all)
netsnmp_feature_child_of(watcher_register_timestamp, watcher_all)
netsnmp_feature_child_of(watcher_ulong_scalar, watcher_all)
netsnmp_feature_child_of(watcher_read_only_ulong_scalar, watcher_all)
netsnmp_feature_child_of(watcher_read_only_int_scalar, watcher_all)
netsnmp_feature_child_of(watcher_long_scalar, watcher_all)
netsnmp_feature_child_of(watcher_read_only_long_scalar, watcher_all)
netsnmp_feature_child_of(watcher_int_scalar, watcher_all)
netsnmp_feature_child_of(read_only_counter32_scalar, watcher_all)
netsnmp_feature_child_of(watcher_spinlock, watcher_all)
netsnmp_feature_provide(watcher_all);
netsnmp_feature_child_of(watcher_all, mib_helpers);
netsnmp_feature_child_of(watcher_create_info6, watcher_all);
netsnmp_feature_child_of(watcher_register_timestamp, watcher_all);
netsnmp_feature_child_of(watcher_ulong_scalar, watcher_all);
netsnmp_feature_child_of(watcher_read_only_ulong_scalar, watcher_all);
netsnmp_feature_child_of(watcher_read_only_int_scalar, watcher_all);
netsnmp_feature_child_of(watcher_long_scalar, watcher_all);
netsnmp_feature_child_of(watcher_read_only_long_scalar, watcher_all);
netsnmp_feature_child_of(watcher_int_scalar, watcher_all);
netsnmp_feature_child_of(read_only_counter32_scalar, watcher_all);
netsnmp_feature_child_of(watcher_spinlock, watcher_all);
/** @defgroup watcher watcher
* Watch a specified variable and process it as an instance or scalar object

View File

@ -18,24 +18,24 @@
#include <net-snmp/net-snmp-config.h>
#include <sys/types.h>
#if HAVE_STDLIB_H
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#if HAVE_UNISTD_H
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#include <stdio.h>
#include <errno.h>
#if HAVE_STRING_H
#ifdef HAVE_STRING_H
#include <string.h>
#endif
#if HAVE_FCNTL_H
#ifdef HAVE_FCNTL_H
#include <fcntl.h>
#endif
#if HAVE_NETINET_IN_H
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
#if HAVE_KVM_H
#ifdef HAVE_KVM_H
#include <kvm.h>
#endif
@ -44,13 +44,8 @@
#include "kernel.h"
#include <net-snmp/agent/ds_agent.h>
#ifndef NULL
#define NULL 0
#endif
#if HAVE_KVM_H
kvm_t *kd = NULL;
#if defined(HAVE_KVM_H) && !defined(NETSNMP_NO_KMEM_USAGE)
kvm_t *kd;
/**
* Initialize the support for accessing kernel virtual memory.
@ -62,7 +57,7 @@ init_kmem(const char *file)
{
int res = TRUE;
#if HAVE_KVM_OPENFILES
#ifdef HAVE_KVM_OPENFILES
char err[4096];
kd = kvm_openfiles(NULL, NULL, NULL, O_RDONLY, err);
@ -110,7 +105,7 @@ klookup(unsigned long off, void *target, size_t siz)
return 0;
result = kvm_read(kd, off, target, siz);
if (result != siz) {
#if HAVE_KVM_OPENFILES
#ifdef HAVE_KVM_OPENFILES
snmp_log(LOG_ERR, "kvm_read(*, %lx, %p, %x) = %d: %s\n", off,
target, (unsigned) siz, result, kvm_geterr(kd));
#else
@ -135,9 +130,8 @@ free_kmem(void)
}
}
#else /* HAVE_KVM_H */
#ifdef HAVE_KMEM
#elif defined(HAVE_NLIST_H) && !defined(__linux__) && \
!defined(NETSNMP_NO_KMEM_USAGE)
static off_t klseek(off_t);
static int klread(char *, int);
@ -259,6 +253,15 @@ free_kmem(void)
}
}
#endif /* HAVE_KMEM */
#else
int
init_kmem(const char *file)
{
return 1; /* success */
}
#endif /* HAVE_KVM_H */
void
free_kmem(void)
{
}
#endif

View File

@ -17,14 +17,14 @@
extern int init_kmem(const char *);
extern void free_kmem(void);
#if HAVE_KVM_H
#ifdef HAVE_KVM_H
extern int klookup(unsigned long, void *, size_t);
#define NETSNMP_KLOOKUP(x,y,z) klookup((unsigned long) x,y,z)
#else
#define NETSNMP_KLOOKUP(x,y,z) (0)
#endif
#if HAVE_KVM_H
#ifdef HAVE_KVM_H
#include <kvm.h>
extern kvm_t *kd;
#endif

View File

@ -4,29 +4,29 @@
#include <net-snmp/agent/mib_module_config.h>
#include <net-snmp/net-snmp-config.h>
#if HAVE_STRING_H
#ifdef HAVE_STRING_H
#include <string.h>
#else
#include <strings.h>
#endif
#if HAVE_STDLIB_H
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#if HAVE_UNISTD_H
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#include <sys/types.h>
#if TIME_WITH_SYS_TIME
#ifdef TIME_WITH_SYS_TIME
# include <sys/time.h>
# include <time.h>
#else
# if HAVE_SYS_TIME_H
# ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
# else
# include <time.h>
# endif
#endif
#if HAVE_NETINET_IN_H
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
@ -65,9 +65,6 @@ init_mib_modules(void)
{
static int once = 0;
#ifdef USING_IF_MIB_DATA_ACCESS_INTERFACE_MODULE
netsnmp_access_interface_init();
#endif
# include "mib_module_inits.h"
need_shutdown = 1;

File diff suppressed because it is too large Load Diff

View File

@ -44,13 +44,13 @@
*
*/
config_require(Rmon/rows)
config_require(Rmon/agutil)
config_require(Rmon/statistics)
config_require(Rmon/rows);
config_require(Rmon/agutil);
config_require(Rmon/statistics);
/* older implementation: */
/* config_require(Rmon/alarm) */
config_require(Rmon/alarmTable)
config_require(Rmon/history)
config_require(Rmon/event)
config_add_mib(RMON-MIB)
config_require(Rmon/alarmTable);
config_require(Rmon/history);
config_require(Rmon/event);
config_add_mib(RMON-MIB);

View File

@ -210,7 +210,7 @@ AGUTIL_sys_up_time(void)
void
SYSTEM_get_eth_statistics(VAR_OID_T * data_source, ETH_STATS_T * where)
{
#if OPTICALL_ACESS
#ifdef OPTICALL_ACESS
where->ifIndex = data_source->objid[data_source->length - 1];
agent_get_Rmon_ethernet_statistics(where->ifIndex, 1, /* exact */
where);

View File

@ -63,7 +63,7 @@ int AGUTIL_get_oid_value(u_char * var_val, u_char var_val_type,
u_long AGUTIL_sys_up_time(void);
#if OPTICALL_ACESS
#ifdef OPTICALL_ACESS
#define ETH_STATS_T UID_PORT_STATISTICS_T
#else
typedef struct {

View File

@ -20,17 +20,17 @@
#include <net-snmp/net-snmp-config.h>
#if HAVE_STDLIB_H
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#if HAVE_UNISTD_H
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#if TIME_WITH_SYS_TIME
#ifdef TIME_WITH_SYS_TIME
# include <sys/time.h>
# include <time.h>
#else
# if HAVE_SYS_TIME_H
# ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
# else
# include <time.h>
@ -129,6 +129,8 @@
0;
#endif
static unsigned char zero_octet_string[1];
static int
fetch_var_val(oid * name, size_t namelen, u_long * new_value)
{
@ -645,7 +647,7 @@ var_alarmEntry(struct variable * vp, oid * name, size_t * length,
return (unsigned char *) hdr->owner;
} else {
*var_len = 0;
return (unsigned char *) "";
return zero_octet_string;
}
case IDalarmStatus:

View File

@ -17,16 +17,20 @@
#include "alarmTable.h"
#include "event.h"
netsnmp_feature_require(iquery)
netsnmp_feature_require(query_set_default_session)
netsnmp_feature_require(table_tdata)
netsnmp_feature_require(check_vb_type_and_max_size)
netsnmp_feature_require(table_tdata_extract_table)
netsnmp_feature_require(iquery);
netsnmp_feature_require(query_set_default_session);
netsnmp_feature_require(table_tdata);
netsnmp_feature_require(check_vb_type_and_max_size);
netsnmp_feature_require(table_tdata_extract_table);
#ifndef NETSNMP_NO_WRITE_SUPPORT
netsnmp_feature_require(table_tdata_insert_row)
netsnmp_feature_require(iquery_pdu_session)
netsnmp_feature_require(table_tdata_insert_row);
netsnmp_feature_require(iquery_pdu_session);
#endif /* NETSNMP_NO_WRITE_SUPPORT */
static netsnmp_tdata *alarm_data;
static netsnmp_table_registration_info *alarm_info;
static netsnmp_handler_registration *alarm_reg;
/** Initializes the alarmTable module */
void
init_alarmTable(void)
@ -43,33 +47,38 @@ initialize_table_alarmTable(void)
{
static oid alarmTable_oid[] = { 1, 3, 6, 1, 2, 1, 16, 3, 1 };
size_t alarmTable_oid_len = OID_LENGTH(alarmTable_oid);
netsnmp_handler_registration *reg;
netsnmp_tdata *table_data;
netsnmp_table_registration_info *table_info;
DEBUGMSGTL(( "rmon:alarmTable", "initialize_table_alarmTable called.\n"));
reg =
alarm_reg =
netsnmp_create_handler_registration("alarmTable",
alarmTable_handler,
alarmTable_oid,
alarmTable_oid_len,
HANDLER_CAN_RWRITE);
table_data = netsnmp_tdata_create_table("alarmTable", 0);
table_info = SNMP_MALLOC_TYPEDEF(netsnmp_table_registration_info);
netsnmp_table_helper_add_indexes(table_info, ASN_INTEGER, /* index: alarmIndex */
alarm_data = netsnmp_tdata_create_table("alarmTable", 0);
alarm_info = SNMP_MALLOC_TYPEDEF(netsnmp_table_registration_info);
netsnmp_table_helper_add_indexes(alarm_info, ASN_INTEGER, /* index: alarmIndex */
0);
table_info->min_column = COLUMN_ALARMINDEX;
table_info->max_column = COLUMN_ALARMSTATUS;
alarm_info->min_column = COLUMN_ALARMINDEX;
alarm_info->max_column = COLUMN_ALARMSTATUS;
netsnmp_tdata_register(reg, table_data, table_info);
netsnmp_tdata_register(alarm_reg, alarm_data, alarm_info);
/*
* Initialise the contents of the table here
*/
}
void shutdown_alarmTable(void)
{
netsnmp_tdata_unregister(alarm_reg);
netsnmp_table_registration_info_free(alarm_info);
}
#define ALARM_STR1_LEN 32
typedef enum {
RMON1_ENTRY_VALID = 1,
@ -805,7 +814,7 @@ alarmTable_handler(netsnmp_mib_handler *handler,
netsnmp_query_set_default_session(sess);
DEBUGMSGTL(("rmon:alarmTable", "user name %s\n", secName));
} else {
snmp_log(LOG_ERR, "user name %s not found\n", secName);
snmp_log(LOG_ERR, "user name not found\n");
config_perror("Unknown user name\n");
}

View File

@ -11,15 +11,16 @@
#ifndef ALARMTABLE_H
#define ALARMTABLE_H
config_require(utilities/iquery)
config_require(Rmon/agutil)
config_require(Rmon/rows)
config_require(Rmon/event)
config_require(utilities/iquery);
config_require(Rmon/agutil);
config_require(Rmon/rows);
config_require(Rmon/event);
/*
* function declarations
*/
void init_alarmTable(void);
void shutdown_alarmTable(void);
void initialize_table_alarmTable(void);
Netsnmp_Node_Handler alarmTable_handler;

View File

@ -21,20 +21,20 @@
#include <net-snmp/net-snmp-config.h>
#include <net-snmp/net-snmp-features.h>
#if HAVE_STDLIB_H
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#if TIME_WITH_SYS_TIME
#ifdef TIME_WITH_SYS_TIME
# include <sys/time.h>
# include <time.h>
#else
# if HAVE_SYS_TIME_H
# ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
# else
# include <time.h>
# endif
#endif
#if HAVE_UNISTD_H
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#include <ctype.h>
@ -50,7 +50,7 @@
#include "agutil_api.h"
#include "row_api.h"
netsnmp_feature_require(snprint_objid)
netsnmp_feature_require(snprint_objid);
/*
* File scope definitions section
@ -524,7 +524,7 @@ create_explanaition(CRTL_ENTRY_T * evptr, u_char is_rising,
tmp = strchr(pch, '.');
if (!tmp)
break;
if (isdigit(tmp[1]) || '"' == tmp[1])
if (isdigit((unsigned char)tmp[1]) || '"' == tmp[1])
break;
pch = tmp + 1;
}

View File

@ -26,10 +26,10 @@
*/
void init_event(void);
config_require(util_funcs)
config_require(util_funcs);
config_require(Rmon/agutil)
config_require(Rmon/rows)
config_require(Rmon/agutil);
config_require(Rmon/rows);
int
event_api_send_alarm(u_char is_rising, u_long alarm_index,

View File

@ -20,20 +20,20 @@
#include <net-snmp/net-snmp-config.h>
#if HAVE_STDLIB_H
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#if TIME_WITH_SYS_TIME
#ifdef TIME_WITH_SYS_TIME
# include <sys/time.h>
# include <time.h>
#else
# if HAVE_SYS_TIME_H
# ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
# else
# include <time.h>
# endif
#endif
#if HAVE_UNISTD_H
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif

View File

@ -20,20 +20,20 @@
#include <net-snmp/net-snmp-config.h>
#if HAVE_STDLIB
#ifdef HAVE_STDLIB
#include <stdlib.h>
#endif
#if TIME_WITH_SYS_TIME
#ifdef TIME_WITH_SYS_TIME
# include <sys/time.h>
# include <time.h>
#else
# if HAVE_SYS_TIME_H
# ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
# else
# include <time.h>
# endif
#endif
#if HAVE_UNISTD_H
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif

View File

@ -22,10 +22,10 @@
* users, then it may be safe to turn on. */
#define ENABLE_EXTEND_WRITE_ACCESS 0
netsnmp_feature_require(extract_table_row_data)
netsnmp_feature_require(table_data_delete_table)
netsnmp_feature_require(extract_table_row_data);
netsnmp_feature_require(table_data_delete_table);
#ifndef NETSNMP_NO_WRITE_SUPPORT
netsnmp_feature_require(insert_table_row)
netsnmp_feature_require(insert_table_row);
#endif /* NETSNMP_NO_WRITE_SUPPORT */
oid ns_extend_oid[] = { 1, 3, 6, 1, 4, 1, 8072, 1, 3, 2 };
@ -260,6 +260,10 @@ _unregister_extend(extend_registration_block *eptr)
}
netsnmp_table_data_delete_table(eptr->dinfo);
netsnmp_unregister_handler( eptr->reg[0] );
netsnmp_unregister_handler( eptr->reg[1] );
netsnmp_unregister_handler( eptr->reg[2] );
netsnmp_unregister_handler( eptr->reg[3] );
free(eptr->root_oid);
free(eptr);
}
@ -272,11 +276,14 @@ extend_clear_callback(int majorID, int minorID,
for ( eptr=ereg_head; eptr; eptr=enext ) {
enext=eptr->next;
netsnmp_table_data_delete_table(eptr->dinfo);
netsnmp_unregister_handler( eptr->reg[0] );
netsnmp_unregister_handler( eptr->reg[1] );
netsnmp_unregister_handler( eptr->reg[2] );
netsnmp_unregister_handler( eptr->reg[3] );
SNMP_FREE(eptr);
if (eptr->root_oid)
free(eptr->root_oid);
free(eptr);
}
ereg_head = NULL;
return 0;
@ -354,8 +361,8 @@ extend_load_cache(netsnmp_cache *cache, void *magic)
ret = run_exec_command( cmd_buf, extension->input, out_buf, &out_len);
DEBUGMSG(( "nsExtendTable:cache", ": %s : %d\n", cmd_buf, ret));
if (ret >= 0) {
if (out_buf[ out_len-1 ] == '\n')
out_buf[ --out_len ] = '\0'; /* Stomp on trailing newline */
if (out_len > 0 && out_buf[out_len - 1] == '\n')
out_buf[--out_len] = '\0'; /* Strip trailing newline */
extension->output = strdup( out_buf );
extension->out_len = out_len;
/*
@ -573,8 +580,12 @@ extend_parse_config(const char *token, char *cptr)
if (!strcmp( token, "execFix" ) ||
!strcmp( token, "extendfix" ) ||
!strcmp( token, "execFix2" )) {
strcpy( exec_name2, exec_name );
strcat( exec_name, "Fix" );
strlcpy(exec_name2, exec_name, sizeof(exec_name2));
if (snprintf(exec_name, sizeof(exec_name), "%sFix", exec_name2) >=
sizeof(exec_name)) {
config_perror("ERROR: argument too long");
return;
}
flags |= NS_EXTEND_FLAGS_WRITEABLE;
/* XXX - Check for shell... */
}
@ -652,9 +663,9 @@ handle_nsExtendConfigTable(netsnmp_mib_handler *handler,
netsnmp_request_info *request;
netsnmp_table_request_info *table_info;
netsnmp_extend *extension;
extend_registration_block *eptr;
extend_registration_block *eptr NETSNMP_ATTRIBUTE_UNUSED;
int i;
int need_to_validate = 0;
int need_to_validate NETSNMP_ATTRIBUTE_UNUSED = 0;
for ( request=requests; request; request=request->next ) {
if (request->processed)
@ -1532,52 +1543,49 @@ var_extensible_old(struct variable * vp,
idx = name[*length-1] -1;
if (idx > max_compatability_entries)
return NULL;
exten = &compatability_entries[ idx ];
if (exten) {
switch (vp->magic) {
case MIBINDEX:
long_ret = name[*length - 1];
return ((u_char *) (&long_ret));
case ERRORNAME: /* name defined in config file */
*var_len = strlen(exten->exec_entry->token);
return ((u_char *) (exten->exec_entry->token));
case SHELLCOMMAND:
cmdline = _get_cmdline(exten->exec_entry);
exten = &compatability_entries[idx];
switch (vp->magic) {
case MIBINDEX:
long_ret = name[*length - 1];
return (u_char *) &long_ret;
case ERRORNAME: /* name defined in config file */
*var_len = strlen(exten->exec_entry->token);
return ((u_char *) (exten->exec_entry->token));
case SHELLCOMMAND:
cmdline = _get_cmdline(exten->exec_entry);
if (cmdline)
*var_len = strlen(cmdline);
return (u_char *) cmdline;
case ERRORFLAG: /* return code from the process */
netsnmp_cache_check_and_reload( exten->exec_entry->cache );
long_ret = exten->exec_entry->result;
return (u_char *) &long_ret;
case ERRORMSG: /* first line of text returned from the process */
netsnmp_cache_check_and_reload( exten->exec_entry->cache );
if (exten->exec_entry->numlines > 1) {
*var_len = (exten->exec_entry->lines[1])-
(exten->exec_entry->output) -1;
} else if (exten->exec_entry->output) {
*var_len = strlen(exten->exec_entry->output);
} else {
*var_len = 0;
}
return (u_char *) exten->exec_entry->output;
case ERRORFIX:
*write_method = fixExec2Error;
long_return = 0;
return (u_char *) &long_return;
case ERRORFIXCMD:
if (exten->efix_entry) {
cmdline = _get_cmdline(exten->efix_entry);
if (cmdline)
*var_len = strlen(cmdline);
return ((u_char *) cmdline);
case ERRORFLAG: /* return code from the process */
netsnmp_cache_check_and_reload( exten->exec_entry->cache );
long_ret = exten->exec_entry->result;
return ((u_char *) (&long_ret));
case ERRORMSG: /* first line of text returned from the process */
netsnmp_cache_check_and_reload( exten->exec_entry->cache );
if (exten->exec_entry->numlines > 1) {
*var_len = (exten->exec_entry->lines[1])-
(exten->exec_entry->output) -1;
} else if (exten->exec_entry->output) {
*var_len = strlen(exten->exec_entry->output);
} else {
*var_len = 0;
}
return ((u_char *) (exten->exec_entry->output));
case ERRORFIX:
*write_method = fixExec2Error;
long_return = 0;
return ((u_char *) &long_return);
case ERRORFIXCMD:
if (exten->efix_entry) {
cmdline = _get_cmdline(exten->efix_entry);
if (cmdline)
*var_len = strlen(cmdline);
return ((u_char *) cmdline);
} else {
*var_len = 0;
return ((u_char *) &long_return); /* Just needs to be non-null! */
}
return (u_char *) cmdline;
} else {
*var_len = 0;
return (u_char *) &long_return; /* Just needs to be non-null! */
}
return NULL;
}
return NULL;
}
@ -1590,13 +1598,10 @@ fixExec2Error(int action,
size_t var_val_len,
u_char * statP, oid * name, size_t name_len)
{
netsnmp_old_extend *exten = NULL;
unsigned int idx;
idx = name[name_len-1] -1;
exten = &compatability_entries[ idx ];
#if !defined(NETSNMP_NO_WRITE_SUPPORT) && ENABLE_EXTEND_WRITE_ACCESS
unsigned int idx = name[name_len - 1] - 1;
const netsnmp_old_extend *exten = &compatability_entries[idx];
switch (action) {
case MODE_SET_RESERVE1:
if (var_val_type != ASN_INTEGER) {

View File

@ -1,9 +1,9 @@
#ifndef NETSNMP_EXTEND_H
#define NETSNMP_EXTEND_H
config_require( util_funcs/header_simple_table )
config_require( utilities/execute )
config_add_mib(NET-SNMP-EXTEND-MIB)
config_require( util_funcs/header_simple_table );
config_require( utilities/execute );
config_add_mib(NET-SNMP-EXTEND-MIB);
typedef struct netsnmp_extend_s {
char *token;

View File

@ -13,7 +13,7 @@
#include <net-snmp/agent/cache_handler.h>
#include "agent/nsCache.h"
netsnmp_feature_require(cache_get_head)
netsnmp_feature_require(cache_get_head);
/*

View File

@ -3,6 +3,7 @@
#include <net-snmp/agent/net-snmp-agent-includes.h>
#include <net-snmp/agent/scalar.h>
#include <stdint.h>
#ifdef HAVE_STRING_H
#include <string.h>
#else

View File

@ -13,9 +13,9 @@
#include <net-snmp/library/snmp_logging.h>
#include "agent/nsLogging.h"
netsnmp_feature_require(logging_external)
netsnmp_feature_require(logging_external);
#ifndef NETSNMP_NO_WRITE_SUPPORT
netsnmp_feature_require(table_iterator_insert_context)
netsnmp_feature_require(table_iterator_insert_context);
#endif /* NETSNMP_NO_WRITE_SUPPORT */
/*

View File

@ -9,7 +9,7 @@
#include <net-snmp/agent/net-snmp-agent-includes.h>
#include "nsModuleTable.h"
netsnmp_feature_require(table_dataset)
netsnmp_feature_require(table_dataset);
void
nsModuleTable_free(void *context, netsnmp_iterator_info *dont_care)

View File

@ -12,7 +12,7 @@
#include <net-snmp/agent/table_iterator.h>
#include "nsTransactionTable.h"
netsnmp_feature_require(table_dataset)
netsnmp_feature_require(table_dataset);
/** Initialize the nsTransactionTable table by defining it's contents
and how it's structured */

View File

@ -10,10 +10,10 @@
#include <net-snmp/agent/net-snmp-agent-includes.h>
#include "nsVacmAccessTable.h"
netsnmp_feature_require(check_vb_storagetype)
netsnmp_feature_require(check_vb_storagetype);
#ifndef NETSNMP_NO_WRITE_SUPPORT
netsnmp_feature_require(check_vb_type_and_max_size)
netsnmp_feature_require(table_iterator_insert_context)
netsnmp_feature_require(check_vb_type_and_max_size);
netsnmp_feature_require(table_iterator_insert_context);
#endif /* NETSNMP_NO_WRITE_SUPPORT */
/** Initializes the nsVacmAccessTable module */

View File

@ -5,7 +5,7 @@
#ifndef NSVACMACCESSTABLE_H
#define NSVACMACCESSTABLE_H
config_add_mib(NET-SNMP-VACM-MIB)
config_add_mib(NET-SNMP-VACM-MIB);
/*
* function declarations

View File

@ -1,9 +1,9 @@
config_require(agent/nsTransactionTable)
config_require(agent/nsModuleTable)
config_require(agent/nsTransactionTable);
config_require(agent/nsModuleTable);
#ifndef NETSNMP_NO_DEBUGGING
config_require(agent/nsDebug)
config_require(agent/nsDebug);
#endif
config_require(agent/nsCache)
config_require(agent/nsLogging)
config_require(agent/nsVacmAccessTable)
config_add_mib(NET-SNMP-AGENT-MIB)
config_require(agent/nsCache);
config_require(agent/nsLogging);
config_require(agent/nsVacmAccessTable);
config_add_mib(NET-SNMP-AGENT-MIB);

View File

@ -1,6 +1,6 @@
#ifndef _AGENTX_MIBGROUP_H
#define _AGENTX_MIBGROUP_H
config_require(agentx/master)
config_require(agentx/subagent)
config_require(agentx/master);
config_require(agentx/subagent);
#endif /* _AGENTX_MIBGROUP_H */

View File

@ -9,7 +9,7 @@
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#if HAVE_STRING_H
#ifdef HAVE_STRING_H
#include <string.h>
#else
#include <strings.h>
@ -21,8 +21,8 @@
#include "agentx/agentx_config.h"
#include "agentx/protocol.h"
netsnmp_feature_require(user_information)
netsnmp_feature_require(string_time_to_secs)
netsnmp_feature_require(user_information);
netsnmp_feature_require(string_time_to_secs);
/* ---------------------------------------------------------------------
*
@ -140,6 +140,22 @@ agentx_parse_agentx_retries(const char *token, char *cptr)
}
#endif /* USING_AGENTX_MASTER_MODULE */
#ifdef USING_AGENTX_SUBAGENT_MODULE
void
agentx_parse_agentx_ping_interval(const char *token, char *cptr)
{
int x = atoi(cptr);
DEBUGMSGTL(("agentx/config/ping", "%s\n", cptr));
if (x < 1) {
config_perror("Invalid ping interval value");
return;
}
netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID,
NETSNMP_DS_AGENT_AGENTX_PING_INTERVAL, x);
}
#endif /* USING_AGENTX_SUBAGENT_MODULE */
/* ---------------------------------------------------------------------
*
* Sub-agent
@ -160,7 +176,7 @@ agentx_register_config_handler(const char *token,
register_config_handler(":agentx", token, parser, releaser, help);
}
netsnmp_feature_child_of(agentx_unregister_config_handler, netsnmp_unused)
netsnmp_feature_child_of(agentx_unregister_config_handler, netsnmp_unused);
#ifndef NETSNMP_FEATURE_REMOVE_AGENTX_UNREGISTER_CONFIG_HANDLER
void
agentx_unregister_config_handler(const char *token)
@ -187,6 +203,21 @@ agentx_config_init(void)
agentx_register_config_handler("agentxsocket",
agentx_parse_agentx_socket, NULL,
"AgentX bind address");
agentx_register_config_handler("agentxRetries",
agentx_parse_agentx_retries, NULL,
"AgentX Retries");
/* default to 5 retries */
netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID,
NETSNMP_DS_AGENT_AGENTX_RETRIES, 5);
agentx_register_config_handler("agentxTimeout",
agentx_parse_agentx_timeout, NULL,
"AgentX Timeout (seconds)");
/* default to 1 second */
netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID,
NETSNMP_DS_AGENT_AGENTX_TIMEOUT, 1 * ONE_SEC);
#ifdef USING_AGENTX_MASTER_MODULE
/*
* tokens for master agent
@ -198,33 +229,20 @@ agentx_config_init(void)
agentx_register_config_handler("agentxperms",
agentx_parse_agentx_perms, NULL,
"AgentX socket permissions: socket_perms [directory_perms [username|userid [groupname|groupid]]]");
agentx_register_config_handler("agentxRetries",
agentx_parse_agentx_retries, NULL,
"AgentX Retries");
agentx_register_config_handler("agentxTimeout",
agentx_parse_agentx_timeout, NULL,
"AgentX Timeout (seconds)");
}
#endif /* USING_AGENTX_MASTER_MODULE */
#ifdef USING_AGENTX_SUBAGENT_MODULE
/*
* tokens for master agent
* tokens for subagent
*/
if (SUB_AGENT == agent_role) {
/*
* set up callbacks to initiate master agent pings for this session
*/
netsnmp_ds_register_config(ASN_INTEGER,
netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
NETSNMP_DS_LIB_APPTYPE),
"agentxPingInterval",
NETSNMP_DS_APPLICATION_ID,
NETSNMP_DS_AGENT_AGENTX_PING_INTERVAL);
/* ping and/or reconnect by default every 15 seconds */
netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID,
NETSNMP_DS_AGENT_AGENTX_PING_INTERVAL, 15);
agentx_register_config_handler("agentxPingInterval",
agentx_parse_agentx_ping_interval, NULL,
"AgentX ping interval");
/* ping and/or reconnect by default every 15 seconds */
netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID,
NETSNMP_DS_AGENT_AGENTX_PING_INTERVAL, 15);
}
#endif /* USING_AGENTX_SUBAGENT_MODULE */
}

View File

@ -1,7 +1,7 @@
#ifndef __AGENTX_CONFIG_H__
#define __AGENTX_CONFIG_H__
config_belongs_in(agent_module)
config_belongs_in(agent_module);
#ifdef __cplusplus
extern "C" {

View File

@ -7,30 +7,30 @@
#include <stdio.h>
#include <errno.h>
#if HAVE_STDLIB_H
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#if HAVE_STRING_H
#ifdef HAVE_STRING_H
#include <string.h>
#else
#include <strings.h>
#endif
#if HAVE_UNISTD_H
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#include <sys/types.h>
#if TIME_WITH_SYS_TIME
#ifdef TIME_WITH_SYS_TIME
# include <sys/time.h>
# include <time.h>
#else
# if HAVE_SYS_TIME_H
# ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
# else
# include <time.h>
# endif
#endif
#if HAVE_NETINET_IN_H
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
@ -43,7 +43,7 @@
#include "agentx/client.h"
#include "agentx/subagent.h"
netsnmp_feature_require(set_agent_uptime)
netsnmp_feature_require(set_agent_uptime);
/*
* AgentX handling utility routines
@ -105,7 +105,7 @@ int
agentx_open_session(netsnmp_session * ss)
{
netsnmp_pdu *pdu, *response;
u_long timeout;
int timeout;
DEBUGMSGTL(("agentx/subagent", "opening session \n"));
if (ss == NULL || !IS_AGENTX_VERSION(ss->version)) {
@ -118,7 +118,7 @@ agentx_open_session(netsnmp_session * ss)
timeout = netsnmp_ds_get_int(NETSNMP_DS_APPLICATION_ID,
NETSNMP_DS_AGENT_AGENTX_TIMEOUT);
if (timeout < 0)
pdu->time = 0;
pdu->time = 0;
else
/* for master TIMEOUT is usec, but Agentx Open specifies sec */
pdu->time = timeout/ONE_SEC;

View File

@ -1,7 +1,7 @@
#ifndef AGENTX_CLIENT_H
#define AGENTX_CLIENT_H
config_belongs_in(agent_module)
config_belongs_in(agent_module);
#ifdef __cplusplus
extern "C" {

View File

@ -15,7 +15,7 @@
#include <net-snmp/net-snmp-config.h>
#include <net-snmp/net-snmp-features.h>
#if HAVE_IO_H
#ifdef HAVE_IO_H
#include <io.h>
#endif
@ -24,20 +24,20 @@
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#if HAVE_STRING_H
#ifdef HAVE_STRING_H
#include <string.h>
#else
#include <strings.h>
#endif
#if HAVE_NETINET_IN_H
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
#if HAVE_SYS_SOCKET_H
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#include <errno.h>
#if HAVE_UNISTD_H
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#ifdef HAVE_SYS_STAT_H
@ -51,9 +51,9 @@
#include "agentx/protocol.h"
#include "agentx/master_admin.h"
netsnmp_feature_require(handler_mark_requests_as_delegated)
netsnmp_feature_require(unix_socket_paths)
netsnmp_feature_require(free_agent_snmp_session_by_session)
netsnmp_feature_require(handler_mark_requests_as_delegated);
netsnmp_feature_require(unix_socket_paths);
netsnmp_feature_require(free_agent_snmp_session_by_session);
void
real_init_master(void)
@ -178,13 +178,17 @@ real_init_master(void)
agentx_sock_user = -1;
if (agentx_sock_group == 0 )
agentx_sock_group = -1;
chown(name, agentx_sock_user, agentx_sock_group);
NETSNMP_IGNORE_RESULT(chown(name, agentx_sock_user,
agentx_sock_group));
}
}
#endif
session =
snmp_add_full(&sess, t, NULL, agentx_parse, NULL, NULL,
agentx_realloc_build, agentx_check_packet, NULL);
/* snmp_add_full() frees 't' upon failure. */
if (!session)
t = NULL;
}
if (session == NULL) {
netsnmp_transport_free(t);
@ -221,7 +225,7 @@ agentx_got_response(int operation,
/* response is too late, free the cache */
if (magic)
netsnmp_free_delegated_cache((netsnmp_delegated_cache*) magic);
return 0;
return 1;
}
requests = cache->requests;
@ -280,6 +284,11 @@ agentx_got_response(int operation,
netsnmp_free_delegated_cache(cache);
return 0;
case NETSNMP_CALLBACK_OP_RESEND:
DEBUGMSGTL(("agentx/master", "resend on session %8p req=0x%x\n",
session, (unsigned)reqid));
return 0;
case NETSNMP_CALLBACK_OP_RECEIVED_MESSAGE:
/*
* This session is alive
@ -608,8 +617,6 @@ agentx_master_handler(netsnmp_mib_handler *handler,
result = snmp_async_send(ax_session, pdu, agentx_got_response, cb_data);
if (result == 0) {
snmp_free_pdu(pdu);
if (cb_data)
netsnmp_free_delegated_cache((netsnmp_delegated_cache*) cb_data);
}
return SNMP_ERR_NOERROR;

View File

@ -1,11 +1,11 @@
#ifndef _AGENTX_MASTER_H
#define _AGENTX_MASTER_H
config_belongs_in(agent_module)
config_belongs_in(agent_module);
config_require(agentx/protocol)
config_require(agentx/master_admin)
config_require(agentx/agentx_config)
config_require(agentx/protocol);
config_require(agentx/master_admin);
config_require(agentx/agentx_config);
void init_master(void);
void real_init_master(void);

View File

@ -13,20 +13,20 @@
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#if TIME_WITH_SYS_TIME
#ifdef TIME_WITH_SYS_TIME
# include <sys/time.h>
# include <time.h>
#else
# if HAVE_SYS_TIME_H
# ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
# else
# include <time.h>
# endif
#endif
#if HAVE_NETINET_IN_H
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
#if HAVE_SYS_SOCKET_H
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
@ -45,11 +45,11 @@
#include <net-snmp/agent/agent_sysORTable.h>
#include "master.h"
netsnmp_feature_require(unregister_mib_table_row)
netsnmp_feature_require(trap_vars_with_context)
netsnmp_feature_require(calculate_sectime_diff)
netsnmp_feature_require(allocate_globalcacheid)
netsnmp_feature_require(remove_index)
netsnmp_feature_require(unregister_mib_table_row);
netsnmp_feature_require(trap_vars_with_context);
netsnmp_feature_require(calculate_sectime_diff);
netsnmp_feature_require(allocate_globalcacheid);
netsnmp_feature_require(remove_index);
netsnmp_session *
find_agentx_session(netsnmp_session * session, int sessid)
@ -444,17 +444,12 @@ agentx_notify(netsnmp_session * session, netsnmp_pdu *pdu)
* as this is valid AgentX syntax.
*/
/* If a context name was specified, send the trap using that context.
* Otherwise, send the trap without the context using the old method */
if (pdu->contextName != NULL)
{
send_trap_vars_with_context(-1, -1, pdu->variables,
pdu->contextName);
}
else
{
/* If a context name was specified, send the trap using that context.
* Otherwise, send the trap without the context using the old method */
if (pdu->contextName != NULL)
send_trap_vars_with_context(-1, -1, pdu->variables, pdu->contextName);
else
send_trap_vars(-1, -1, pdu->variables);
}
return AGENTX_ERR_NOERROR;
}

View File

@ -1,7 +1,7 @@
#ifndef _AGENTX_MASTER_ADMIN_H
#define _AGENTX_MASTER_ADMIN_H
config_belongs_in(agent_module)
config_belongs_in(agent_module);
int handle_master_agentx_packet(int, netsnmp_session *,
int, netsnmp_pdu *, void *);

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
#ifndef AGENTX_PROTOCOL_H
#define AGENTX_PROTOCOL_H
config_belongs_in(agent_module)
config_belongs_in(agent_module);
#ifdef __cplusplus
extern "C" {

View File

@ -8,25 +8,25 @@
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#if TIME_WITH_SYS_TIME
#ifdef TIME_WITH_SYS_TIME
# include <sys/time.h>
# include <time.h>
#else
# if HAVE_SYS_TIME_H
# ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
# else
# include <time.h>
# endif
#endif
#if HAVE_SYS_SOCKET_H
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#if HAVE_STRING_H
#ifdef HAVE_STRING_H
#include <string.h>
#else
#include <strings.h>
#endif
#if HAVE_NETINET_IN_H
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
@ -47,10 +47,10 @@
#include "subagent.h"
netsnmp_feature_child_of(agentx_subagent, agentx_all)
netsnmp_feature_child_of(agentx_enable_subagent, agentx_subagent)
netsnmp_feature_child_of(agentx_subagent, agentx_all);
netsnmp_feature_child_of(agentx_enable_subagent, agentx_subagent);
netsnmp_feature_require(remove_trap_session)
netsnmp_feature_require(remove_trap_session);
#ifdef USING_AGENTX_SUBAGENT_MODULE
@ -247,6 +247,8 @@ static void
send_agentx_error(netsnmp_session *session, netsnmp_pdu *pdu, int errstat, int errindex)
{
pdu = snmp_clone_pdu(pdu);
if (!pdu)
return;
pdu->command = AGENTX_MSG_RESPONSE;
pdu->version = session->version;
pdu->errstat = errstat;
@ -503,6 +505,9 @@ handle_agentx_packet(int operation, netsnmp_session * session, int reqid,
*/
internal_pdu = snmp_clone_pdu(pdu);
if (!internal_pdu)
return 1;
free(internal_pdu->contextName);
internal_pdu->contextName = (char *) internal_pdu->community;
internal_pdu->contextNameLen = internal_pdu->community_len;
internal_pdu->community = NULL;
@ -548,6 +553,8 @@ handle_subagent_response(int op, netsnmp_session * session, int reqid,
}
pdu = snmp_clone_pdu(pdu);
if (!pdu)
return 1;
DEBUGMSGTL(("agentx/subagent",
"handling AgentX response (cmd 0x%02x orig_cmd 0x%02x)"
" (req=0x%x,trans=0x%x,sess=0x%x)\n",
@ -642,6 +649,8 @@ handle_subagent_set_response(int op, netsnmp_session * session, int reqid,
(unsigned)pdu->command, (unsigned)pdu->reqid,
(unsigned)pdu->transid, (unsigned)pdu->sessid));
pdu = snmp_clone_pdu(pdu);
if (!pdu)
return 1;
asi = (struct agent_netsnmp_set_info *) magic;
retsess = asi->sess;
@ -675,11 +684,13 @@ handle_subagent_set_response(int op, netsnmp_session * session, int reqid,
pdu->variables = NULL; /* the variables were added by us */
}
netsnmp_assert(retsess != NULL);
pdu->command = AGENTX_MSG_RESPONSE;
pdu->version = retsess->version;
if (retsess && pdu) {
pdu->command = AGENTX_MSG_RESPONSE;
pdu->version = retsess->version;
if (!snmp_send(retsess, pdu)) {
if (!snmp_send(retsess, pdu))
snmp_free_pdu(pdu);
} else if (pdu) {
snmp_free_pdu(pdu);
}
DEBUGMSGTL(("agentx/subagent", " FINISHED\n"));
@ -870,6 +881,8 @@ subagent_open_master_session(void)
agentx_realloc_build, agentx_check_packet, NULL);
if (main_session == NULL) {
/* snmp_add_full() frees 't' upon failure. */
t = NULL;
if (!netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID,
NETSNMP_DS_AGENT_NO_CONNECTION_WARNINGS)) {
char buf[1024];

View File

@ -1,14 +1,14 @@
#ifndef _AGENTX_SUBAGENT_H
#define _AGENTX_SUBAGENT_H
config_belongs_in(agent_module)
config_belongs_in(agent_module);
config_require(agentx/protocol)
config_require(agentx/client)
config_require(agentx/agentx_config)
config_require(agentx/protocol);
config_require(agentx/client);
config_require(agentx/agentx_config);
#ifndef NETSNMP_TRANSPORT_CALLBACK_DOMAIN
config_error(agentx/subagent depends on the Callback transport)
config_error(agentx/subagent depends on the Callback transport);
#endif
int subagent_init(void);

View File

@ -3,54 +3,54 @@
/* these go into both the mini agent and the full agent */
config_require(snmpv3mibs)
config_require(snmpv3mibs);
/* very few default mibs */
config_add_mib(SNMPv2-MIB)
config_add_mib(IF-MIB)
config_add_mib(IP-MIB)
config_add_mib(TCP-MIB)
config_add_mib(UDP-MIB)
config_add_mib(SNMPv2-MIB);
config_add_mib(IF-MIB);
config_add_mib(IP-MIB);
config_add_mib(TCP-MIB);
config_add_mib(UDP-MIB);
#ifdef NETSNMP_MINI_AGENT
/* limit the mibII modules to the bare minimum */
config_require(mibII/snmp_mib)
config_require(mibII/system_mib)
config_require(mibII/sysORTable)
config_require(mibII/vacm_vars)
config_require(mibII/vacm_conf)
config_require(mibII/snmp_mib);
config_require(mibII/system_mib);
config_require(mibII/sysORTable);
config_require(mibII/vacm_vars);
config_require(mibII/vacm_conf);
#else /* !NETSNMP_MINI_AGENT == the full shabang */
config_require(mibII)
config_require(ucd_snmp)
config_require(notification)
config_require(notification-log-mib)
config_require(target)
config_require(agent_mibs)
config_require(agentx)
config_require(disman/event)
config_require(mibII);
config_require(ucd_snmp);
config_require(notification);
config_require(notification-log-mib);
config_require(target);
config_require(agent_mibs);
config_require(agentx);
config_require(disman/event);
#ifndef NETSNMP_NO_WRITE_SUPPORT
config_require(disman/schedule)
config_require(disman/schedule);
#endif /* !NETSNMP_NO_WRITE_SUPPORT */
config_require(utilities)
config_require(utilities);
/* default MIBs to auto-include for parsing */
/* NOTE: we consider these MIBs users will likely want to load by
default, even if they're not supporting it in the agent (ie, the
command line tools need to load them anyway) */
config_add_mib(HOST-RESOURCES-MIB)
config_add_mib(NOTIFICATION-LOG-MIB)
config_add_mib(DISMAN-EVENT-MIB)
config_add_mib(HOST-RESOURCES-MIB);
config_add_mib(NOTIFICATION-LOG-MIB);
config_add_mib(DISMAN-EVENT-MIB);
#ifndef NETSNMP_NO_WRITE_SUPPORT
config_add_mib(DISMAN-SCHEDULE-MIB)
config_add_mib(DISMAN-SCHEDULE-MIB);
#endif /* !NETSNMP_NO_WRITE_SUPPORT */
/* architecture specific extra modules */
/* these symbols are set in the host specific net-snmp/system/<os>.h files */
#ifdef NETSNMP_INCLUDE_HOST_RESOURCES
config_require(host)
config_require(host);
#endif
#endif

View File

@ -5,7 +5,7 @@
#include <limits.h>
netsnmp_feature_require(container_fifo)
netsnmp_feature_require(container_fifo);
#include "deliverByNotify.h"

View File

@ -1,18 +1,18 @@
#ifndef DELIVERBYNOTIFY_H
#define DELIVERBYNOTIFY_H 1
#if TIME_WITH_SYS_TIME
#ifdef TIME_WITH_SYS_TIME
# include <sys/time.h>
# include <time.h>
#else
# if HAVE_SYS_TIME_H
# ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
# else
# include <time.h>
# endif
#endif
config_add_mib(NET-SNMP-PERIODIC-NOTIFY-MIB)
config_add_mib(NET-SNMP-PERIODIC-NOTIFY-MIB);
void init_deliverByNotify(void);

View File

@ -1,11 +1,11 @@
/*
* Wrapper for the full DisMan implementation
*/
config_require(disman/event-mib)
config_require(disman/expression-mib)
config_require(disman/event-mib);
config_require(disman/expression-mib);
#ifndef NETSNMP_NO_WRITE_SUPPORT
/* the schedule mib is all about writing (SETs) */
config_require(disman/schedule)
config_require(disman/schedule);
#endif /* !NETSNMP_NO_WRITE_SUPPORT */
/* config_require(disman/nslookup-mib) */
/* config_require(disman/ping-mib) */

View File

@ -1,2 +1,2 @@
config_require(disman/event)
config_require(disman/event);

View File

@ -1,34 +1,34 @@
config_add_mib(DISMAN-EVENT-MIB)
config_add_mib(DISMAN-EVENT-MIB);
/*
* wrapper for the new disman event mib implementation code files
*/
config_require(disman/event/mteScalars)
config_require(disman/event/mteTrigger)
config_require(disman/event/mteTriggerTable)
config_require(disman/event/mteTriggerDeltaTable)
config_require(disman/event/mteTriggerExistenceTable)
config_require(disman/event/mteTriggerBooleanTable)
config_require(disman/event/mteTriggerThresholdTable)
config_require(disman/event/mteTriggerConf)
config_require(disman/event/mteEvent)
config_require(disman/event/mteEventTable)
config_require(disman/event/mteEventSetTable)
config_require(disman/event/mteEventNotificationTable)
config_require(disman/event/mteEventConf)
config_require(disman/event/mteObjects)
config_require(disman/event/mteObjectsTable)
config_require(disman/event/mteObjectsConf)
config_require(disman/event/mteScalars);
config_require(disman/event/mteTrigger);
config_require(disman/event/mteTriggerTable);
config_require(disman/event/mteTriggerDeltaTable);
config_require(disman/event/mteTriggerExistenceTable);
config_require(disman/event/mteTriggerBooleanTable);
config_require(disman/event/mteTriggerThresholdTable);
config_require(disman/event/mteTriggerConf);
config_require(disman/event/mteEvent);
config_require(disman/event/mteEventTable);
config_require(disman/event/mteEventSetTable);
config_require(disman/event/mteEventNotificationTable);
config_require(disman/event/mteEventConf);
config_require(disman/event/mteObjects);
config_require(disman/event/mteObjectsTable);
config_require(disman/event/mteObjectsConf);
/*
* conflicts with the previous implementation
*/
config_exclude(disman/mteTriggerTable)
config_exclude(disman/mteTriggerDeltaTable)
config_exclude(disman/mteTriggerExistenceTable)
config_exclude(disman/mteTriggerBooleanTable)
config_exclude(disman/mteTriggerThresholdTable)
config_exclude(disman/mteObjectsTable)
config_exclude(disman/mteEventTable)
config_exclude(disman/mteEventNotificationTable)
config_exclude(disman/mteTriggerTable);
config_exclude(disman/mteTriggerDeltaTable);
config_exclude(disman/mteTriggerExistenceTable);
config_exclude(disman/mteTriggerBooleanTable);
config_exclude(disman/mteTriggerThresholdTable);
config_exclude(disman/mteObjectsTable);
config_exclude(disman/mteEventTable);
config_exclude(disman/mteEventNotificationTable);

View File

@ -13,9 +13,9 @@
#include "disman/event/mteTrigger.h"
#include "disman/event/mteObjects.h"
netsnmp_feature_child_of(disman_debugging, libnetsnmpmibs)
netsnmp_feature_child_of(mteevent, libnetsnmpmibs)
netsnmp_feature_child_of(mteevent_removeentry, mteevent)
netsnmp_feature_child_of(disman_debugging, libnetsnmpmibs);
netsnmp_feature_child_of(mteevent, libnetsnmpmibs);
netsnmp_feature_child_of(mteevent_removeentry, mteevent);
netsnmp_tdata *event_table_data;

View File

@ -12,7 +12,7 @@
#include "disman/event/mteEvent.h"
#include "disman/event/mteEventConf.h"
netsnmp_feature_require(iquery)
netsnmp_feature_require(iquery);
/** Initializes the mteEventsConf module */
void

View File

@ -1,7 +1,7 @@
#ifndef MTEEVENTCONF_H
#define MTEEVENTCONF_H
config_require(utilities/iquery)
config_require(utilities/iquery);
/*
* function declarations

View File

@ -13,10 +13,10 @@
#include "disman/event/mteEvent.h"
#include "disman/event/mteEventNotificationTable.h"
netsnmp_feature_require(table_tdata)
netsnmp_feature_require(table_tdata);
#ifndef NETSNMP_NO_WRITE_SUPPORT
netsnmp_feature_require(check_vb_type_and_max_size)
netsnmp_feature_require(check_vb_oid)
netsnmp_feature_require(check_vb_type_and_max_size);
netsnmp_feature_require(check_vb_oid);
#endif /* NETSNMP_NO_WRITE_SUPPORT */
static netsnmp_table_registration_info *table_info;

View File

@ -13,11 +13,11 @@
#include "disman/event/mteEvent.h"
#include "disman/event/mteEventSetTable.h"
netsnmp_feature_require(table_tdata)
netsnmp_feature_require(table_tdata);
#ifndef NETSNMP_NO_WRITE_SUPPORT
netsnmp_feature_require(check_vb_type_and_max_size)
netsnmp_feature_require(check_vb_oid)
netsnmp_feature_require(check_vb_truthvalue)
netsnmp_feature_require(check_vb_type_and_max_size);
netsnmp_feature_require(check_vb_oid);
netsnmp_feature_require(check_vb_truthvalue);
#endif /* NETSNMP_NO_WRITE_SUPPORT */
static netsnmp_table_registration_info *table_info;

Some files were not shown because too many files have changed in this diff Show More