Import Upstream version 5.9.4+dfsg
This commit is contained in:
parent
115daf9f5e
commit
720aed252f
|
@ -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'
|
||||
|
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
||||
|
|
39
.travis.yml
39
.travis.yml
|
@ -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
182
CHANGES
|
@ -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
|
||||
|
|
|
@ -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
24
FAQ
|
@ -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.
|
||||
|
||||
|
|
2
INSTALL
2
INSTALL
|
@ -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
|
||||
|
|
35
Makefile.in
35
Makefile.in
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
15
Makefile.top
15
Makefile.top
|
@ -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
115
NEWS
|
@ -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
121
README
|
@ -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.
|
||||
|
|
669
README.win32
669
README.win32
|
@ -4,9 +4,7 @@
|
|||
*
|
||||
***************************************************************************
|
||||
|
||||
This guide describes how to build Net-SNMP with Microsoft Visual C++, the
|
||||
MinGW gcc compiler or the Cygwin gcc compiler. As developers build with other
|
||||
Win32 environments, their notes will be included here.
|
||||
This guide describes how to build Net-SNMP binaries for Windows.
|
||||
|
||||
The sections in this guide are:
|
||||
|
||||
|
@ -14,7 +12,6 @@ Current Status for Win32 platforms
|
|||
Interactions with Other Vendor's Products
|
||||
Running Net-SNMP as a replacement for the Microsoft SNMP service
|
||||
Co-existence with Microsoft SNMP services
|
||||
Installing Platform SDK
|
||||
Microsoft Visual C++ - Overview
|
||||
Microsoft Visual C++ - Configure / nmake - Building
|
||||
Microsoft Visual C++ - Workspace - Building
|
||||
|
@ -26,13 +23,12 @@ Microsoft Visual C++ - Building with IPv6
|
|||
Microsoft Visual C++ - Building your own applications with snmplib
|
||||
Microsoft Visual C++ - Extending the Agent
|
||||
GCC on Windows
|
||||
Cygwin - Building
|
||||
MinGW - Building
|
||||
MinGW - Building with OpenSSL
|
||||
Configuring Net-SNMP
|
||||
How to Register the Net-SNMP Agent and Trap Daemon as Windows services
|
||||
Notes on SET support for WIN32 ports
|
||||
Notes on preprocessor defines for MSVC, MinGW and Cygwin
|
||||
Notes on preprocessor defines
|
||||
Acknowledgements
|
||||
|
||||
|
||||
|
@ -42,14 +38,10 @@ Acknowledgements
|
|||
*
|
||||
***************************************************************************
|
||||
|
||||
All applications build with Microsoft Visual C++ 6.0, Microsoft Development
|
||||
Environment 2003 (MSVC 7.0/7.1), Microsoft Visual Studio 2005, Microsoft
|
||||
Visual Studio 2008, Microsoft Visual Studio 2010, gcc under Cygwin and gcc
|
||||
under MinGW.
|
||||
All applications build with Microsoft Studio, MinGW and Mingw-w64.
|
||||
|
||||
- All of the applications work (snmpwalk, snmpget, snmpset, snmptrap, ...).
|
||||
- The system, snmp, ip, tcp, udp and icmp MIB-groups work (requires the
|
||||
Platform SDK).
|
||||
- The system, snmp, ip, tcp, udp and icmp MIB-groups work.
|
||||
- The Net-SNMP agent runs as an AgentX master agent or as subagent.
|
||||
- smux is working.
|
||||
- The target, notification, disman/mte groups compile but are not tested.
|
||||
|
@ -58,28 +50,14 @@ under MinGW.
|
|||
- Running the agent on a non-standard UDP or TCP port works.
|
||||
- Snmpd can be registered as a Windows service.
|
||||
- Snmptrapd can be registered as a Windows service.
|
||||
- Some build environments allow long pathnames that contain
|
||||
embedded spaces. As this is not true for Cygwin "configure",
|
||||
the documented example scripts will refer to "c:/usr"
|
||||
as the base directory for installed Net-SNMP software.
|
||||
- When using the winExtDLL extension agent, the Net-SNMP agent will
|
||||
load the Windows SNMP Service extension DLLs.
|
||||
|
||||
The next subsection relates to items that are built using Visual Studio
|
||||
|
||||
- All Visual Studio project (.dsp) files are cleaned, and
|
||||
a) Generate code to use Multi-Threaded DLL (/MD) "C" run-time library;
|
||||
b) Provide the same preprocessor defines (WIN32,_CONSOLE,_MBCS);
|
||||
c) Remove unnecessary references to GDI, ODBC, and "C" libraries;
|
||||
d) Debug versions build source browsing and debugging information;
|
||||
e) Provide consistent include search paths.
|
||||
|
||||
- All Debug and Release targets linked with libsnmp project targets
|
||||
build without errors, and are fully functional.
|
||||
|
||||
- Both building via the interactive development environment and via the
|
||||
command line (nmake) is supported.
|
||||
|
||||
- With Visual Studio 2005 and later, the Net-SNMP source code can be
|
||||
compiled into either 32-bit or 64-bit executables (the amd64/x64
|
||||
architecture). Previous Visual Studio versions support 32-bit executables
|
||||
|
@ -124,14 +102,17 @@ The next subsection relates to items that are built using Visual Studio
|
|||
*
|
||||
***************************************************************************
|
||||
|
||||
As of Net-SNMP 5.4, the Net-SNMP agent is able to load the Windows SNMP
|
||||
service extension DLLs by using the Net-SNMP winExtDLL extension.
|
||||
The Net-SNMP agent is able to load the Windows SNMP service extension DLLs by
|
||||
using the Net-SNMP winExtDLL extension.
|
||||
|
||||
The Windows SNMP service must be installed, but the service must be disabled.
|
||||
This is required so that the extension DLLs are available for loading, and
|
||||
also because this extension and the existing Windows extensions use the
|
||||
Windows SNMP API from snmpapi.dll.
|
||||
|
||||
Additionally, Net-SNMP must be built in 32-bit mode. This is because Microsoft
|
||||
only provides a 32-bit version of the SNMP extension DLLs.
|
||||
|
||||
An alternative to winExtDLL is to proxy requests from Net-SNMP to the Windows
|
||||
SNMP service. See the section 'Co-existence with Microsoft SNMP services'.
|
||||
|
||||
|
@ -153,6 +134,20 @@ Limitations
|
|||
see also https://connect.microsoft.com/onecare/feedback/ViewFeedback.aspx?FeedbackID=504908.
|
||||
|
||||
|
||||
Installing the Windows SNMP Service
|
||||
-----------------------------------
|
||||
|
||||
The procedure for installing the Windows SNMP service on Windows 10 is as
|
||||
follows:
|
||||
|
||||
1. Use the Windows + I key combination to open the Settings App.
|
||||
2. Go to the Apps category and move to Apps & features tab.
|
||||
3. Tap on the Optional features button.
|
||||
4. On the new page, click on the Add a feature button.
|
||||
5. Scroll down to Simple Network Management Protocol (SNMP) and select it.
|
||||
6. Press the Install button to install SNMP on your PC.
|
||||
|
||||
|
||||
Enabling the Windows SNMP extension agents
|
||||
------------------------------------------
|
||||
|
||||
|
@ -161,7 +156,7 @@ When installing Net-SNMP using the binary available from the web site, select
|
|||
|
||||
The recommended way to start snmpd is with the following command line:
|
||||
|
||||
snmpd.exe -I-udp,udpTable,tcp,tcpTable,icmp,ip,interfaces,system_mib,sysORTable
|
||||
snmpd.exe -I-udp,udpTable,tcp,tcpTable,icmp,ip,interfaces,snmp_mib,system_mib,sysORTable
|
||||
|
||||
The above command will exclude all the Net-SNMP extensions that overlap with
|
||||
the default Windows (2003) extensions included with Windows. Other Net-SNMP
|
||||
|
@ -193,8 +188,7 @@ To see what Windows modules are being loaded, you can shut down the
|
|||
service and then run snmpd.exe from the command line with winExtDLL
|
||||
debugging enabled using (all on one line):
|
||||
|
||||
snmpd.exe -Lo -I-udp,udpTable,tcp,tcpTable,icmp,ip,interfaces,system_mib,
|
||||
sysORTable -DwinExtDLL
|
||||
snmpd.exe -Lo -I-udp,udpTable,tcp,tcpTable,icmp,ip,interfaces,snmp_mib,system_mib,sysORTable -DwinExtDLL
|
||||
|
||||
The Windows DLL snmpmib.dll (SNMPMIB) contains SNMP traffic statistics
|
||||
(.1.3.6.1.2.1.11). As we are using Net-SNMP and not the Windows SNMP Service,
|
||||
|
@ -236,23 +230,11 @@ Net-SNMP instead of SNMP by modifying the registry. See Microsoft article
|
|||
193888 for more information.
|
||||
|
||||
|
||||
Compiling Net-SNMP with the winExtDLL extension (MSVC)
|
||||
------------------------------------------------------
|
||||
Compiling Net-SNMP with the winExtDLL extension
|
||||
-----------------------------------------------
|
||||
|
||||
When building with MSVC 6, the Microsoft Platform SDK is required. Note: the
|
||||
most recent Platform SDK version that is still compatible with MSVC 6 is the
|
||||
February 2003 edition. This edition is no longer available online but can be
|
||||
ordered via http://mssdk.orderport.net/22221848/showall.asp.
|
||||
|
||||
Configure / nmake:
|
||||
|
||||
-add --with-winextdll to the Configure command line.
|
||||
|
||||
Workspace:
|
||||
|
||||
-in file win32\net-snmp\net-snmp-config.h modify
|
||||
/* #undef USING_WINEXTDLL_MODULE */ into the following:
|
||||
#define USING_WINEXTDLL_MODULE 1
|
||||
To build Net-SNMP with the winExtDLL extension, add --with-winextdll to the
|
||||
configure command line.
|
||||
|
||||
|
||||
***************************************************************************
|
||||
|
@ -408,113 +390,45 @@ See the snmpd.conf man page for more information on configuring security.
|
|||
|
||||
***************************************************************************
|
||||
*
|
||||
* Installing Platform SDK
|
||||
* Microsoft Visual Studio - Overview
|
||||
*
|
||||
***************************************************************************
|
||||
|
||||
If you are using Microsoft Visual Studio 6.0, you will have to install the
|
||||
Platform SDK (PSDK) first.
|
||||
|
||||
Once the PSDK has been installed, select the following action from the Start
|
||||
Menu: Programs / Microsoft Windows SDK / Visual Studio Registration / Windows
|
||||
SDK Configuration Tool.
|
||||
|
||||
If you are using any of the following environments, the PSDK download is not
|
||||
necessary as the required parts of the PSDK are included:
|
||||
- Microsoft Visual Studio 2002 or later.
|
||||
- Cygwin.
|
||||
- MinGW.
|
||||
|
||||
In order for the process part of the host resources MIB to work under Windows
|
||||
NT you will need to obtain PSAPI.DLL. This is available under the download
|
||||
section of www.microsoft.com. The DLL is included with Windows 2000 and XP,
|
||||
and is also part of the VC++ distribution.
|
||||
|
||||
If you are building Net-SNMP using Cygwin, go now to "Cygwin - Building".
|
||||
If you are building Net-SNMP using MinGW, go now to "MinGW - Building".
|
||||
Otherwise, see the Building section below.
|
||||
|
||||
|
||||
***************************************************************************
|
||||
*
|
||||
* Microsoft Visual C++ - Overview
|
||||
*
|
||||
***************************************************************************
|
||||
|
||||
There are two ways to build Net-SNMP using Microsoft Visual C++. The first
|
||||
and easiest method is using Configure and nmake on the command line, and the
|
||||
second is using the Workspace files inside the interactive development
|
||||
environment.
|
||||
nmake is required to build Net-SNMP with Microsoft Visual Studio.
|
||||
|
||||
To use nmake on the command line, the Configure script is run first to create
|
||||
the various makefiles. Once these have been created, nmake is used to build
|
||||
the applications. Perl is required to use this method, as the Configure
|
||||
script is written in Perl. ActiveState ActivePerl is available at:
|
||||
script is written in Perl. Perl source code is available at:
|
||||
|
||||
http://www.activestate.com/Products/ActivePerl/
|
||||
https://www.cpan.org/src/
|
||||
|
||||
The make file system is based on and uses the directory structure of the
|
||||
projects contained in the Workspace files which are described below. It is
|
||||
recommended that you read and understand how the workspaces are configured
|
||||
even if you will only be using the command line Configure / nmake system.
|
||||
|
||||
For building via the interactive development environment, there are the Win32
|
||||
workspaces win32.dsw and libdll.dsw. The last workspace allows to build a DLL
|
||||
version of snmplib (netsnmp.dll).
|
||||
|
||||
There is one core development library ('libsnmp'), together with a number
|
||||
of utility projects for the individual executable commands ('snmpget',
|
||||
'snmpwalk', etc...). All of these projects require the .lib created by
|
||||
the libsnmp project.
|
||||
|
||||
The agent requires the core library plus the other two library projects
|
||||
('libagent' and 'netsnmpmibs') together with the main agent project ('snmpd').
|
||||
|
||||
The final application project is the trap handler 'snmptrapd'. This also
|
||||
requires the agent libraries ('libagent' and 'netsnmpmibs') as well as the
|
||||
core development library.
|
||||
|
||||
There is a Debug version and Release version for each subproject. This is so
|
||||
the Debug and Release versions of an application can be built and tested
|
||||
separately.
|
||||
|
||||
VC++ 6.0, 7.1, 8.0 (2005), 9.0 (2008) and 10.0 (2010) have been tested.
|
||||
Building with earlier Microsoft compiler versions is no longer supported.
|
||||
|
||||
Note: if you want to distribute the generated executable, you will also need
|
||||
If you want to distribute the generated executable, you will also need
|
||||
to distribute the Microsoft Visual Studio Redistributable Package. Check the
|
||||
EULA included with that package before redistributing it.
|
||||
|
||||
OpenSSL is required to support the encryption capabilities in SNMPv3,
|
||||
or SHA authentication.
|
||||
|
||||
Since the MSVC build environment does not natively use "configure" nor "make"
|
||||
to generate the various pathnames that the programs require, the header files
|
||||
need to be manually modified when using the IDE, and an install script is
|
||||
provided. When using the Perl Configure / nmake system, the header files are
|
||||
automatically modified and require no manual editing.
|
||||
Since the Microsoft Visual Studio build environment does not natively use
|
||||
"configure" nor "make" to generate the various pathnames that the programs
|
||||
require, the header files need to be manually modified when using the IDE, and
|
||||
an install script is provided. When using the Perl Configure / nmake system,
|
||||
the header files are automatically modified and require no manual editing.
|
||||
|
||||
The projects are arranged so that ALL of the usable products, the .exe files,
|
||||
are written to the win32\bin directory. The win32\lib directory is used only
|
||||
to build the the files in the win32\bin directory. Once building is
|
||||
completed, there is no further use for the files in the win32\lib directory.
|
||||
|
||||
Debug Information
|
||||
-----------------
|
||||
|
||||
Note that VC++ 6.0 has options for debugging information - the 'Program
|
||||
Database'. This option is set in the Project settings, C/C++ tab, 'General'
|
||||
category, and is turned on by default during the conversion of the project
|
||||
files. This option is not for use with a library, as it embeds debug
|
||||
information into the library that references an external file that will
|
||||
not be available to the linking application. If you get an error message
|
||||
along the lines of 'debugging information not available in file vc60.pdb,
|
||||
make sure the library debug option is set to 'Program Database' or "/Zi".
|
||||
|
||||
|
||||
***************************************************************************
|
||||
*
|
||||
* Microsoft Visual C++ - Configure / nmake - Building
|
||||
* Microsoft Visual Studio - Configure / nmake - Building
|
||||
*
|
||||
***************************************************************************
|
||||
|
||||
|
@ -523,10 +437,18 @@ The first and easiest method is by running the win32\build.bat script. The
|
|||
second is manually running Configure and nmake.
|
||||
|
||||
Note: Perl is required to use this method as the Configure script is
|
||||
written in Perl. ActiveState ActivePerl is available at:
|
||||
written in Perl. The Perl source code is available at:
|
||||
|
||||
http://www.activestate.com/Products/ActivePerl/
|
||||
https://www.cpan.org/src/
|
||||
|
||||
The Perl interpreter can be built as follows:
|
||||
1. Extract the Perl source code archive.
|
||||
2. In win32/Makefile, change CCTYPE to the string that corresponds to your
|
||||
Visual Studio version, e.g. MSVC140.
|
||||
3. Edit INST_DRV and INST_TOP if necessary.
|
||||
4. Run vcvarsall.bat.
|
||||
5. Run nmake.
|
||||
6. Run nmake install.
|
||||
|
||||
Win32\build.bat script
|
||||
======================
|
||||
|
@ -558,23 +480,25 @@ steps to build using build.bat:
|
|||
==================================
|
||||
|
||||
1. OpenSSL support: disabled
|
||||
2. Platform SDK support: disabled
|
||||
2. OpenSSL include directory: C:\OpenSSL-Win64\include
|
||||
3. OpenSSL library directory: C:\OpenSSL-Win64\lib\VC
|
||||
4. Platform SDK support: disabled
|
||||
|
||||
3. Install path: c:/usr
|
||||
4. Install after build: enabled
|
||||
5. Install path: c:/usr
|
||||
6. Install after build: enabled
|
||||
|
||||
5. Perl modules: disabled
|
||||
6. Install perl modules: disabled
|
||||
7. Perl modules: disabled
|
||||
8. Install perl modules: disabled
|
||||
|
||||
7. Quiet build (logged): enabled
|
||||
8. Debug mode: disabled
|
||||
9. Quiet build (logged): enabled
|
||||
10. Debug mode: disabled
|
||||
|
||||
9. IPv6 transports (requires SDK): disabled
|
||||
10. winExtDLL agent (requires SDK): disabled
|
||||
11. IPv6 transports (requires SDK): disabled
|
||||
12. winExtDLL agent (requires SDK): disabled
|
||||
|
||||
11. Link type: static
|
||||
13. Link type: static
|
||||
|
||||
12. Install development files disabled
|
||||
14. Install development files disabled
|
||||
|
||||
F. Finished - start build
|
||||
Q. Quit - abort build
|
||||
|
@ -588,9 +512,6 @@ steps to build using build.bat:
|
|||
already be installed. See the section 'Microsoft Visual C++ - Building
|
||||
with OpenSSL' for details.
|
||||
|
||||
To compile with the Platform SDK, the Platform SDK must already be
|
||||
installed. See the section 'Installing Platform SDK' for details.
|
||||
|
||||
To use the IPv6 transports, Windows 98 or later is required.
|
||||
|
||||
See the section 'Running Net-SNMP as a replacement for the Microsoft
|
||||
|
@ -648,10 +569,9 @@ first by the Configure script. Following are sample steps to:
|
|||
2. Initialize the Visual Studio build environment by running VCVARS32.bat
|
||||
which can be found in the bin folder of your Visual Studio install folder.
|
||||
|
||||
3. Type (all on one line):
|
||||
3. Run the following command:
|
||||
|
||||
perl Configure --with-sdk --with-ssl --config=debug
|
||||
--prefix="c:/usr"
|
||||
perl Configure --with-sdk --with-ssl --config=debug --prefix="c:/usr"
|
||||
|
||||
4. The make files will be generated, and a configuration summary will appear:
|
||||
|
||||
|
@ -671,7 +591,7 @@ first by the Configure script. Following are sample steps to:
|
|||
nmake
|
||||
nmake install
|
||||
|
||||
perl Configure --with-sdk --with-ssl --config=debug --linktype=dynamic
|
||||
perl Configure --with-sdk --with-ssl --config=debug --linktype=dynamic\
|
||||
--prefix="c:/usr"
|
||||
|
||||
nmake libs_clean
|
||||
|
@ -703,255 +623,18 @@ Note: The Configure option --linktype=static (or not specifying a linktype)
|
|||
|
||||
***************************************************************************
|
||||
*
|
||||
* Microsoft Visual C++ - Workspace - Building
|
||||
*
|
||||
***************************************************************************
|
||||
|
||||
The win32.dsw and win32dll.dsw workspaces allow to build the agent and the
|
||||
applications. Proceed as follows:
|
||||
|
||||
1. Update the version stamp in win32\net-snmp\net-snmp-config.h. The current
|
||||
version can be found in the Unix configure script (top level folder) by
|
||||
looking for the PACKAGE_VERSION variable.
|
||||
|
||||
2. If SNMPv3 encryption capabilities or SHA authentication is required,
|
||||
install the OpenSSL DLL and library file as described in the section
|
||||
'Microsoft Visual C++ - Building with OpenSSL" and then continue with
|
||||
step 2.
|
||||
|
||||
3. The default installation path is c:\usr. This folder will contain all
|
||||
the binaries, MIB files, configuration files etc. To change the location,
|
||||
the win32\net-snmp\net-snmp-config.h file needs to be modified by changing
|
||||
the INSTALL_BASE variable.
|
||||
|
||||
Note:
|
||||
|
||||
All paths in net-snmp-config.h use the "/" UNIX pathname delimiter.
|
||||
If a drive letter is not specified, the current drive letter is assumed.
|
||||
|
||||
For example: #define INSTALL_BASE "c:/usr".
|
||||
|
||||
4. When building DLLs instead of static libraries, *change* the following
|
||||
line which is located near the top of the file:
|
||||
|
||||
/* #undef NETSNMP_USE_DLL */
|
||||
|
||||
*to*
|
||||
|
||||
#define NETSNMP_USE_DLL 1
|
||||
|
||||
5. Build the agent and the applications
|
||||
|
||||
a. Open win32.dsw (static build) or win32dll.dsw (dynamic build).
|
||||
b. If you want to generate 64-bit binaries instead of 32-bit binaries,
|
||||
select "Build/Configuration Manager" and add the "x64" platform.
|
||||
c. Select "Build/Batch Build..."
|
||||
d. Select the projects and configurations you want to build.
|
||||
e. Click "ReBuild All".
|
||||
f. When building is done, View the Output window, clip and
|
||||
save to a text file if there is some information to share.
|
||||
|
||||
6. If the Perl modules are required, continue with the next section:
|
||||
'Microsoft Visual C++ - Building the Perl SNMP modules'.
|
||||
|
||||
Otherwise, continue with the section:
|
||||
'Microsoft Visual C++ - Installing'
|
||||
|
||||
|
||||
***************************************************************************
|
||||
*
|
||||
* Microsoft Visual C++ - Workspace - Building the Perl SNMP modules
|
||||
*
|
||||
***************************************************************************
|
||||
|
||||
The Perl modules should be compiled against the DLL version of snmplib.
|
||||
Compiling against a static version is possible, but each module will
|
||||
load it's own copy of the MIB, and sharing data between modules will
|
||||
not be possible. For example, the conf module tests will fail.
|
||||
|
||||
1. Complete the section 'Microsoft Visual C++ - Building' and choose for
|
||||
the dynamic build. This will build the libraries, agent and applications.
|
||||
|
||||
Note: SNMPD.EXE and SNMPTRAPD.EXE are required for running the tests
|
||||
against the SNMP Perl module.
|
||||
|
||||
2. Install Net-SNMP as described in the 'Microsoft Visual C++ - Installing'
|
||||
section to install the applications, the DLL and the .lib files.
|
||||
|
||||
3. Continue with the Win32 section of the Perl README file located in
|
||||
perl\SNMP\README.
|
||||
|
||||
|
||||
***************************************************************************
|
||||
*
|
||||
* Microsoft Visual C++ - Workspace - Installing
|
||||
*
|
||||
***************************************************************************
|
||||
|
||||
The install script "win32\install-net-snmp.bat" should be run after a
|
||||
build is successful. It copies the programs, MIB files, and development
|
||||
components to an install directory named in the INSTALL_BASE variable.
|
||||
|
||||
1. Complete the section 'Microsoft Visual C++ - Building'.
|
||||
|
||||
2. Open win32\install-net-snmp.bat using a text editor.
|
||||
|
||||
The INSTALL_BASE variable must match the INSTALL_BASE compile constant
|
||||
defined in "win32\net-snmp\net-snmp-config.h", using these rules:
|
||||
|
||||
a. All paths in install-net-snmp.bat use the "\" DOS pathname delimiter.
|
||||
|
||||
Example: set INSTALL_BASE="c:\usr".
|
||||
|
||||
b. All paths in net-snmp-config.h use the "/" UNIX pathname delimiter.
|
||||
If a drive letter is not specified, the current drive letter is
|
||||
assumed.
|
||||
|
||||
Example: #define INSTALL_BASE "c:/usr".
|
||||
|
||||
Note: You may also modify "install-net-snmp.bat" in order to not install
|
||||
the linking libraries, or the header files.
|
||||
|
||||
3. Open a command prompt window.
|
||||
|
||||
4. Cd to the base directory where this file README.win32 is located.
|
||||
|
||||
5. Run win32\install-net-snmp.bat to install the programs.
|
||||
|
||||
## sample output from install-net-snmp.bat
|
||||
|
||||
NOTE: Directory already exist messages are normal. If you are
|
||||
not building with OpenSSL, then DLL not found messages
|
||||
are normal.
|
||||
|
||||
C:\net-snmp-5.1.1> win32\install-net-snmp
|
||||
Remember to run this script from the base of the source directory.
|
||||
Creating "c:\usr" sub-directories
|
||||
A subdirectory or file c:\usr already exists.
|
||||
A subdirectory or file c:\usr\bin already exists.
|
||||
A subdirectory or file c:\usr\etc\snmp already exists.
|
||||
A subdirectory or file c:\usr\share\snmp\snmpconf-data
|
||||
already exists
|
||||
A subdirectory or file c:\usr\share\snmp\snmpconf-data\
|
||||
snmp-data already exists.
|
||||
A subdirectory or file c:\usr\share\snmp\snmpconf-data\
|
||||
snmpd-data already exists.
|
||||
A subdirectory or file c:\usr\share\snmp\snmpconf-data\
|
||||
snmptrapd-data already exists.
|
||||
A subdirectory or file c:\usr\lib already exists.
|
||||
A subdirectory or file c:\usr\mibs already exists.
|
||||
A subdirectory or file c:\usr\include already exists.
|
||||
A subdirectory or file c:\usr\include\net-snmp already
|
||||
exists
|
||||
.
|
||||
A subdirectory or file c:\usr\include\ucd-snmp already
|
||||
exists
|
||||
.
|
||||
Copying MIB files to "c:\usr"\mibs
|
||||
Copying compiled programs to "c:\usr"\bin
|
||||
Copying snmpconf files to "c:\usr"\share\snmp\snmpconf-
|
||||
data\snmp-data
|
||||
Copying link libraries to "c:\usr"\lib
|
||||
Copying header files to "c:\usr"\include
|
||||
Deleting debugging files from "c:\usr"
|
||||
Copying DLL files to "c:\usr"
|
||||
The system cannot find the file specified.
|
||||
Done copying files to "c:\usr"
|
||||
C:\net-snmp-5.1.1>
|
||||
|
||||
## END sample output from install-net-snmp.bat
|
||||
|
||||
6. Add the bin folder (c:\usr\bin in the above example) to
|
||||
your system path.
|
||||
|
||||
7. Test the installation. For a simple test to see if Net-SNMP is working,
|
||||
open a _new_ command prompt window, and type:
|
||||
|
||||
snmptranslate -IR -Td linkDown
|
||||
|
||||
8. If the folder that Net-SNMP was installed to is ever changed, modify the
|
||||
system environment variables or registry keys as explained in the
|
||||
'Configuration_Overview.html' file located in win32/dist/htmlhelp.
|
||||
|
||||
|
||||
***************************************************************************
|
||||
*
|
||||
* Microsoft Visual C++ - Building with OpenSSL
|
||||
* Microsoft Visual Studio - Building with OpenSSL
|
||||
*
|
||||
***************************************************************************
|
||||
|
||||
OpenSSL is required to support the encryption capabilities in SNMPv3
|
||||
(or SHA authentication). The win32 version of OpenSSL can be built
|
||||
from the sources or you can download a pre-compiled version.
|
||||
|
||||
Building from source:
|
||||
=====================
|
||||
|
||||
1. Install an assembler. If you do not have the M$ assembler installed (MASM)
|
||||
you can get a free one(NASM) from:
|
||||
|
||||
http://www.kernel.org/pub/software/devel/nasm
|
||||
|
||||
|
||||
2. Obtain the OpenSSL source from the link below. Follow instructions in
|
||||
INSTALL.W32
|
||||
|
||||
ftp://ftp.openssl.org/source/
|
||||
|
||||
|
||||
3. Once the OpenSSL libraries are built, copy the folder inc32\openssl to
|
||||
C:\OpenSSL\Include\openssl and the folder out32dll to C:\OpenSSL\Lib\VC.
|
||||
|
||||
|
||||
Using a pre-compiled version
|
||||
============================
|
||||
|
||||
1. Obtain the latest OpenSSL binary from the link below.
|
||||
|
||||
http://www.slproweb.com/products/Win32OpenSSL.html
|
||||
|
||||
2. Install the package to c:\OpenSSL.
|
||||
|
||||
|
||||
Project changes
|
||||
===============
|
||||
|
||||
1. Edit the win32\net-snmp\net-snmp-config.h header file. Add:
|
||||
|
||||
#define NETSNMP_USE_OPENSSL 1
|
||||
|
||||
2. Open Visual Studio, open the Tools menu and select Options. Go to
|
||||
Projects and Solutions and select VC++ Directories. Add
|
||||
C:\OpenSSL\Include to the list of include directories and
|
||||
C:\OpenSSL\Lib\VC to the list of library directories.
|
||||
|
||||
3. Continue with the section 'Microsoft Visual C++ - Building"
|
||||
(or SHA authentication). Pre-compiled binaries are available from
|
||||
http://www.slproweb.com/products/Win32OpenSSL.html.
|
||||
|
||||
|
||||
***************************************************************************
|
||||
*
|
||||
* Microsoft Visual C++ - Building with IPv6
|
||||
*
|
||||
***************************************************************************
|
||||
|
||||
The default build configuration supports SNMP over IPv4-based transports.
|
||||
However Windows 2000 and later include an IPv6-capable stack which
|
||||
can be used to provide SNMP over IPv6. To enable IPv6, the Microsoft PSDK
|
||||
is required and NETSNMP_ENABLE_IPV6 has to be enabled in
|
||||
win32\net-snmp\net-snmp-config.h. Change the following single line from:
|
||||
|
||||
/* #undef NETSNMP_ENABLE_IPV6 */
|
||||
|
||||
to:
|
||||
|
||||
#define NETSNMP_ENABLE_IPV6 1
|
||||
|
||||
Next, continue with the section 'Microsoft Visual C++ - Building"
|
||||
|
||||
|
||||
***************************************************************************
|
||||
*
|
||||
* Microsoft Visual C++ - Building your own applications with snmplib
|
||||
* Microsoft Visual Studio - Building your own applications with snmplib
|
||||
*
|
||||
***************************************************************************
|
||||
|
||||
|
@ -986,7 +669,7 @@ Note: Some users may have better results compiling other packages that use
|
|||
|
||||
***************************************************************************
|
||||
*
|
||||
* Microsoft Visual C++ - Extending the Agent
|
||||
* Microsoft Visual Studio - Extending the Agent
|
||||
*
|
||||
***************************************************************************
|
||||
|
||||
|
@ -1015,112 +698,46 @@ and 'snmpd' project. And things should work just fine.
|
|||
*
|
||||
***************************************************************************
|
||||
|
||||
There are two versions of GCC (the GNU Compiler Collection) in common use on
|
||||
Microsoft Windows operating systems. This section will attempt to point the
|
||||
There are multiple versions of GCC (the GNU Compiler Collection) in common use
|
||||
on Microsoft Windows operating systems. This section will attempt to point the
|
||||
user to the information required to choose the one to best suit their needs.
|
||||
|
||||
Cygwin
|
||||
MinGW and Mingw-w64
|
||||
|
||||
The Cygwin compiler and toolkit provides a Unix style shell and environment
|
||||
for Windows based systems. The cygwin1.dll provides a POSIX emulation layer
|
||||
that simplifies porting Unix / Linux applications to Windows. The Cygwin dlls
|
||||
are required if an application is to be distributed. The dependency on the
|
||||
The Cygwin tool chain and documentation can be found at:
|
||||
The MinGW projects provide a Windows native version of gcc. The tool chain
|
||||
links against existing Windows dlls found on most systems. Binaries compiled
|
||||
with MinGW do not require additional libraries to be distributed. The MSYS
|
||||
and MSYS2 environments provide a shell (Bash) and tools to emulate a Unix style
|
||||
build environment on Windows. Mingw-w64 is an improved version of MinGW which
|
||||
supports both 32-bit and 64-bit environments.
|
||||
|
||||
http://sources.redhat.com/cygwin/
|
||||
MSYS + MinGW
|
||||
============
|
||||
|
||||
|
||||
MinGW
|
||||
|
||||
The MinGW compiler is a Windows native version of gcc. The tool chain links
|
||||
against existing Windows dlls found on most systems. Binaries compiled with MinGW
|
||||
do not require additional libraries to be distributed. The MSyS environment
|
||||
provides a shell (Bash) and tools to emulate a Unix style build environment on
|
||||
Windows. The MinGW and MSyS tools and documentation can be found at:
|
||||
The MinGW and MSYS tools and documentation can be found at:
|
||||
|
||||
http://www.mingw.org
|
||||
|
||||
|
||||
***************************************************************************
|
||||
*
|
||||
* Cygwin - Building
|
||||
*
|
||||
***************************************************************************
|
||||
|
||||
An alternate way to build and run Net-SNMP on Win32 is to use the Cygwin
|
||||
environment. Detailed information about the Cygwin environment is available
|
||||
on the web at: http://sources.redhat.com/cygwin/.
|
||||
|
||||
Cygwin allows you to compile almost the complete agent and applications.
|
||||
As an example, the following configure options create a working set of
|
||||
programs:
|
||||
|
||||
ENV_SEPARATOR=":" \
|
||||
./configure \
|
||||
--with-mib-modules="host agentx disman/event-mib examples/example" \
|
||||
--with-out-mib-modules=host/hr_network \
|
||||
|
||||
If you want to disable SNMPv3 auth and privacy features, add:
|
||||
--without-openssl \
|
||||
|
||||
If you want to use IPv6 transports, add:
|
||||
--enable-ipv6
|
||||
|
||||
Note: the source code should *not* be in a folder that contains a space.
|
||||
For example, compiling in your 'My Documents' folder or your Desktop folder
|
||||
(usually c:\Documents and Settings\xxxx\Desktop) is not supported.
|
||||
|
||||
A note for Windows NT users: in order for the process part of the host
|
||||
resources MIB (hr_swrun) to work under Windows NT you will need to get hold
|
||||
of PSAPI.DLL. This DLL is available under the download section of
|
||||
www.microsoft.com, and is also included in the VC++ distribution.
|
||||
|
||||
If the folder that Net-SNMP was installed to is ever changed, modify the
|
||||
system environment variables or registry keys as explained in the
|
||||
'Configuration_Overview.html' file located in win32/dist/htmlhelp.
|
||||
|
||||
|
||||
***************************************************************************
|
||||
*
|
||||
* MinGW - Building
|
||||
*
|
||||
***************************************************************************
|
||||
|
||||
Currently the tools and agent will compile on win32 platforms using the
|
||||
MinGW tools with the MSyS environment. MinGW, MSyS and the associated
|
||||
documentation can be downloaded from: http://www.mingw.org.
|
||||
MinGW, MSyS and the associated documentation can be downloaded from
|
||||
http://www.mingw.org.
|
||||
|
||||
Compiling net-snmp with MinGW requires GNU regex and libintl. Binaries and
|
||||
developer header files for these libraries are available at:
|
||||
developer header files for these libraries can be installed by running the
|
||||
following command from a MinGW shell:
|
||||
|
||||
http://gnuwin32.sourceforge.net/packages/regex.htm
|
||||
http://gnuwin32.sourceforge.net/packages/libintl.htm
|
||||
mingw-get install msys-libregex msys-libintl msys-libopenssl
|
||||
mingw-get upgrade msys-libregex msys-libintl msys-libopenssl
|
||||
|
||||
Proceed as follows to build Net-SNMP:
|
||||
|
||||
1. Install GNU regex and GNU libintl binaries and developer files in the
|
||||
MinGW tree.
|
||||
|
||||
2. If SNMPv3 encryption capabilities or SHA authentication is required,
|
||||
install the OpenSSL DLL and library file as described in the section
|
||||
'MinGW - Building with OpenSSL" and then continue with step 3.
|
||||
|
||||
3. Determine where you want the programs to be installed. Currently
|
||||
you must use path segments no longer than 8 characters, and no
|
||||
embedded spaces are allowed. Due to limitations with Makefiles,
|
||||
you must also specify the MIBDIRS default that corresponds to
|
||||
a particular subtree from the base directory.
|
||||
|
||||
Note: All paths use the "/" UNIX pathname delimiter.
|
||||
Also note that embedded spaces will NOT currently work
|
||||
with MinGW configure. Use the DOS 8.3 form of the path,
|
||||
|
||||
For example: Say that you want to install the programs in
|
||||
the directory "C:\usr".
|
||||
|
||||
Use BASEDIR=c:/usr
|
||||
|
||||
4. Configure net-snmp using the configure flags as shown:
|
||||
1. Configure net-snmp using the configure flags as shown:
|
||||
|
||||
BASEDIR=c:/usr
|
||||
|
||||
|
@ -1129,55 +746,40 @@ Proceed as follows to build Net-SNMP:
|
|||
--with-mib-modules="agentx disman/event-mib winExtDLL examples/example"\
|
||||
--disable-embedded-perl --without-perl-modules \
|
||||
|
||||
Note: while the Net-SNMP implementation of the host resources MIB is not
|
||||
supported when using MinGW, winExtDLL is supported. Via winExtDLL you can
|
||||
use Microsoft's implementation of the host resources MIB.
|
||||
If you want to use IPv6 transports, add:
|
||||
--enable-ipv6 --with-transports="TCPIPv6 UDPIPv6"
|
||||
|
||||
4.1. If you want to use IPv6 transports, add:
|
||||
--enable-ipv6 --with-transports="TCPIPv6 UDPIPv6" \
|
||||
Note: while the Net-SNMP implementation of the host resources MIB is not
|
||||
supported when using MinGW, winExtDLL is supported. Via winExtDLL you can
|
||||
use Microsoft's implementation of the host resources MIB.
|
||||
|
||||
2. Type "make" to compile the package.
|
||||
|
||||
5. Type "make" to compile the package.
|
||||
|
||||
6. Type "make install" to install the package.
|
||||
|
||||
7. If the folder that Net-SNMP was installed to is ever changed, modify the
|
||||
system environment variables or registry keys as explained in the
|
||||
'Configuration_Overview.html' file located in win32/dist/htmlhelp.
|
||||
3. Type "make install" to install the package.
|
||||
|
||||
4. If the folder that Net-SNMP was installed to is ever changed, modify the
|
||||
system environment variables or registry keys as explained in the
|
||||
'Configuration_Overview.html' file located in win32/dist/htmlhelp.
|
||||
|
||||
***************************************************************************
|
||||
*
|
||||
* MinGW - Building with OpenSSL
|
||||
* Mingw-w64 - Building
|
||||
*
|
||||
***************************************************************************
|
||||
|
||||
OpenSSL is required to support the encryption capabilities in SNMPv3
|
||||
(or SHA authentication). A pre-compiled MinGW compatible version of
|
||||
OpenSSL is available on the Internet.
|
||||
|
||||
Follow these steps to install OpenSSL:
|
||||
|
||||
1. Obtain the latest OpenSSL binary from the link below.
|
||||
|
||||
http://www.slproweb.com/products/Win32OpenSSL.html
|
||||
|
||||
2. Install the package to c:\OpenSSL
|
||||
|
||||
3. Copy the header and library files to the the MinGW directory:
|
||||
|
||||
a. Copy the c:\OpenSSL\include\openssl folder to the include folder in
|
||||
MinGW.
|
||||
|
||||
Example: "C:\MinGW\include\openssl\*.h"
|
||||
|
||||
b. Copy c:\OpenSSL\lib\MinGW\libeay32.* to the lib folder in Mingw.
|
||||
|
||||
Example: "C:\MinGW\lib\libeay32.a"
|
||||
Example: "C:\MinGW\lib\libeay32.def"
|
||||
|
||||
4. Continue with the section 'MinGW - Building"
|
||||
MSYS2 and Mingw-w64 can be installed as follows:
|
||||
1. Download the MSYS2 installer from https://www.msys2.org/.
|
||||
2. Run the MSYS2 installer.
|
||||
3. Open an MSYS2 shell.
|
||||
4. Run pacman -S make diffutils
|
||||
5. On a 32-bit system, run
|
||||
pacman -S mingw-w64-i686-gcc mingw-w64-i686-openssl
|
||||
6. On a 64-bit system, run
|
||||
pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-openssl
|
||||
|
||||
Do not try to make the MinGW64 gcc compiler to use the MSYS2 openssl-devel
|
||||
headers by adding /usr/include to the include path because this will trigger
|
||||
plenty of complaints about redefined macros and structures.
|
||||
|
||||
***************************************************************************
|
||||
*
|
||||
|
@ -1189,7 +791,7 @@ Proceed as follows:
|
|||
1. Uninstall Net-SNMP.
|
||||
2. Remove the C:\usr directory completely.
|
||||
3. Open a command prompt
|
||||
4. Run the MSVC vcvarsall.bat script.
|
||||
4. Run the Microsoft Visual Studio vcvarsall.bat script.
|
||||
5. Change the current working directory to the Net-SNMP win32\dist directory.
|
||||
6. Run the .\build-binary.bat script.
|
||||
7. Copy the net-snmp-${version}.x86.exe installer to the desired location.
|
||||
|
@ -1476,39 +1078,34 @@ tcpConnState of tcpConnTable is writable and the only value which may
|
|||
be set by a management station is deleteTCB(12)
|
||||
|
||||
|
||||
***************************************************************************
|
||||
*******************************
|
||||
*
|
||||
* Notes on preprocessor defines for MSVC, MinGW and Cygwin
|
||||
* Notes on preprocessor defines
|
||||
*
|
||||
***************************************************************************
|
||||
*******************************
|
||||
|
||||
When adding Windows specific code, one or more of the following defines should
|
||||
be used:
|
||||
When adding Windows specific code, proceed as follows:
|
||||
- Add a configure test in the appropriate file under configure.d for MinGW.
|
||||
- Add the symbol defined by the configure test to
|
||||
win32/net-snmp/net-snmp-config.h and also to
|
||||
win32/net-snmp/net-snmp-config.h.in. If the feature is supported by
|
||||
Microsoft visual Studio, define the symbol. Otherwise undefine it.
|
||||
|
||||
Define: Description:
|
||||
------- ------------
|
||||
WIN32 Defined by MSVC & MinGW
|
||||
Try to avoid to add #ifdef's that use the WIN32, _MSC_VER and/or mingw32
|
||||
macros. These macros are defined as follows:
|
||||
|
||||
_MSC_VER Defined by MSVC only (standard MSVC macro)
|
||||
Define: Description:
|
||||
------- ------------
|
||||
_WIN32 Defined by Microsoft Visual Studio, MinGW and Mingw-w64.
|
||||
|
||||
mingw32 Defined by MinGW only
|
||||
_WIN64 Defined by Microsoft Visual Studio and Mingw-w64 when
|
||||
generating 64-bit code.
|
||||
|
||||
cygwin Defined by Cygwin only
|
||||
_MSC_VER Defined by Microsoft Visual Studio only
|
||||
|
||||
HAVE_WIN32_PLATFORM_SDK Should be defined if the Microsoft Platform SDK is
|
||||
installed and registered with MSVC or enabled for
|
||||
MinGW or Cygwin
|
||||
__MINGW32__ Defined by MinGW and Mingw-w64
|
||||
|
||||
MinGW and Cygwin do not require the Microsoft Platform SDK as they both should
|
||||
contain most if not all of the functionality provided by the SDK. When adding
|
||||
code that requires the PSDK under MSVC, the following can usually be used:
|
||||
|
||||
#if defined (HAVE_WIN32_PLATFORM_SDK) || defined (mingw32) || defined (cygwin)
|
||||
|
||||
As listed above, Cygwin does NOT define WIN32. When adding generic Windows
|
||||
code that will work with MSVC, MinGW and Cygwin, the following should be used:
|
||||
|
||||
#if defined (WIN32) || defined (cygwin)
|
||||
__MINGW64__ Defined by Mingw-w64 only
|
||||
|
||||
|
||||
***************************************************************************
|
||||
|
|
|
@ -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
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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];
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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) $@
|
||||
|
|
|
@ -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. */
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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:
|
||||
*
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
||||
/*
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
@ -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);
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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");
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
||||
/*
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 */
|
||||
|
||||
/*
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
|
|
|
@ -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" {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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" {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
|
@ -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" {
|
||||
|
|
|
@ -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];
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
#include <limits.h>
|
||||
|
||||
netsnmp_feature_require(container_fifo)
|
||||
netsnmp_feature_require(container_fifo);
|
||||
|
||||
#include "deliverByNotify.h"
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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) */
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
config_require(disman/event)
|
||||
config_require(disman/event);
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#ifndef MTEEVENTCONF_H
|
||||
#define MTEEVENTCONF_H
|
||||
|
||||
config_require(utilities/iquery)
|
||||
config_require(utilities/iquery);
|
||||
|
||||
/*
|
||||
* function declarations
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
Loading…
Reference in New Issue