NAME¶
netsnmp_library - the Net-SNMP library
Data Structures¶
struct
snmp_internal_session
struct
session_list
Modules¶
asn1 parsing and datatype manipulation routines.
Note on. A generic callback mechanism
generic linked-list data handling with a string as a key.
storage space for defaults
The purpose of the default storage is three-fold:. mib parsing and
datatype manipulation routines.
Store and retrieve data referenced by an OID.
This is essentially a way of storing data associated with a given OID.
parsing various configuration files at run time
The read_config related functions are a fairly extensible system of parsing
various configuration files at the run time. generic library based
alarm timers for various parts of an application
various PDU processing routines
generic logging for net-snmp
Memory Utility Routines
Defines¶
#define
MIN(a, b) (((a) < (b)) ? (a) : (b))
#define
MIB_CLIENTS_ARE_EVIL 1
#define
_init_agent_callback_transport()
#define
SNMP_NEED_REQUEST_LIST
#define
timercmp(tvp, uvp, cmp)
#define
timerclear(tvp) (tvp)->tv_sec = (tvp)->tv_usec = 0
#define
MAX_PACKET_LENGTH (0x7fffffff)
#define
NETSNMP_STREAM_QUEUE_LEN 5
#define
BSD4_2
#define
DEFAULT_COMMUNITY 'public'
#define
DEFAULT_RETRIES 5
#define
DEFAULT_TIMEOUT 1000000L
#define
DEFAULT_REMPORT SNMP_PORT
#define
DEFAULT_ENTERPRISE default_enterprise
#define
DEFAULT_TIME 0
#define
MAXIMUM_PACKET_SIZE 0x7fffffff
#define
DEBUGPRINTPDUTYPE(token, type) DEBUGDUMPSECTION(token,
snmp_pdu_type(type))
#define
ERROR_STAT_LENGTH 11
Functions¶
int
init_agent (const char *app)
Initialize the agent. void
shutdown_agent (void)
void
add_to_init_list (char *module_list)
int
should_init (const char *module_name)
int
snmp_build (u_char **pkt, size_t *pkt_len, size_t *offset,
netsnmp_session *pss,
netsnmp_pdu *pdu)
int
snmp_get_errno (void)
void
snmp_synch_reset (
netsnmp_session *notused)
void
snmp_synch_setup (
netsnmp_session *notused)
const char *
strerror (int err)
const char *
snmp_pdu_type (int type)
long
snmp_get_next_reqid (void)
long
snmp_get_next_msgid (void)
long
snmp_get_next_sessid (void)
long
snmp_get_next_transid (void)
void
snmp_perror (const char *prog_string)
void
snmp_set_detail (const char *detail_string)
const char *
snmp_api_errstring (int snmp_errnumber)
void
snmp_error (
netsnmp_session *psess, int *p_errno, int
*p_snmp_errno, char **p_str)
void
snmp_sess_error (void *sessp, int *p_errno, int *p_snmp_errno, char
**p_str)
void
netsnmp_sess_log_error (int priority, const char *prog_string,
netsnmp_session *ss)
void
snmp_sess_perror (const char *prog_string,
netsnmp_session
*ss)
void
snmp_sess_init (
netsnmp_session *session)
void
init_snmp (const char *type)
Calls the functions to do config file loading and mib module
parsing in the correct order. void
snmp_store (const char
*type)
void
snmp_shutdown (const char *type)
Shuts down the application, saving any needed persistent storage, and
appropriate clean up. netsnmp_session *
snmp_open
(
netsnmp_session *session)
netsnmp_session *
snmp_open_ex (
netsnmp_session *session,
int(*fpre_parse)(
netsnmp_session *,
netsnmp_transport *, void
*, int), int(*fparse)(
netsnmp_session *,
netsnmp_pdu *, u_char
*, size_t), int(*fpost_parse)(
netsnmp_session *,
netsnmp_pdu *,
int), int(*fbuild)(
netsnmp_session *,
netsnmp_pdu *, u_char *,
size_t *), int(*frbuild)(
netsnmp_session *,
netsnmp_pdu *,
u_char **, size_t *, size_t *), int(*fcheck)(u_char *, size_t))
int
snmpv3_engineID_probe (struct
session_list *slp,
netsnmp_session *in_session)
probe for peer engineID netsnmp_session *
snmp_add
(
netsnmp_session *in_session,
netsnmp_transport *transport,
int(*fpre_parse)(
netsnmp_session *,
netsnmp_transport *, void
*, int), int(*fpost_parse)(
netsnmp_session *,
netsnmp_pdu *,
int))
netsnmp_session *
snmp_add_full (
netsnmp_session
*in_session,
netsnmp_transport *transport,
int(*fpre_parse)(
netsnmp_session *,
netsnmp_transport *, void *,
int), int(*fparse)(
netsnmp_session *,
netsnmp_pdu *, u_char *,
size_t), int(*fpost_parse)(
netsnmp_session *,
netsnmp_pdu *,
int), int(*fbuild)(
netsnmp_session *,
netsnmp_pdu *, u_char *,
size_t *), int(*frbuild)(
netsnmp_session *,
netsnmp_pdu *,
u_char **, size_t *, size_t *), int(*fcheck)(u_char *, size_t),
netsnmp_pdu *(*fcreate_pdu)(
netsnmp_transport *, void *,
size_t))
void *
snmp_sess_add_ex (
netsnmp_session *in_session,
netsnmp_transport *transport, int(*fpre_parse)(
netsnmp_session
*,
netsnmp_transport *, void *, int),
int(*fparse)(
netsnmp_session *,
netsnmp_pdu *, u_char *,
size_t), int(*fpost_parse)(
netsnmp_session *,
netsnmp_pdu *,
int), int(*fbuild)(
netsnmp_session *,
netsnmp_pdu *, u_char *,
size_t *), int(*frbuild)(
netsnmp_session *,
netsnmp_pdu *,
u_char **, size_t *, size_t *), int(*fcheck)(u_char *, size_t),
netsnmp_pdu *(*fcreate_pdu)(
netsnmp_transport *, void *,
size_t))
void *
snmp_sess_add (
netsnmp_session *in_session,
netsnmp_transport *transport, int(*fpre_parse)(
netsnmp_session
*,
netsnmp_transport *, void *, int),
int(*fpost_parse)(
netsnmp_session *,
netsnmp_pdu *, int))
void *
snmp_sess_open (
netsnmp_session *pss)
int
create_user_from_session (
netsnmp_session *session)
int
snmp_sess_close (void *sessp)
int
snmp_close (
netsnmp_session *session)
int
snmp_close_sessions (void)
int
snmpv3_header_realloc_rbuild (u_char **pkt, size_t *pkt_len, size_t
*offset,
netsnmp_session *session,
netsnmp_pdu *pdu)
int
snmpv3_scopedPDU_header_realloc_rbuild (u_char **pkt, size_t
*pkt_len, size_t *offset,
netsnmp_pdu *pdu, size_t body_len)
int
snmpv3_packet_realloc_rbuild (u_char **pkt, size_t *pkt_len, size_t
*offset,
netsnmp_session *session,
netsnmp_pdu *pdu, u_char
*pdu_data, size_t pdu_data_len)
int
snmpv3_packet_build (
netsnmp_session *session,
netsnmp_pdu *pdu, u_char *packet, size_t *out_length, u_char *pdu_data,
size_t pdu_data_len)
u_char *
snmp_pdu_build (
netsnmp_pdu *pdu, u_char *cp, size_t
*out_length)
int
snmp_pdu_realloc_rbuild (u_char **pkt, size_t *pkt_len, size_t
*offset,
netsnmp_pdu *pdu)
int
snmpv3_parse (
netsnmp_pdu *pdu, u_char *data, size_t *length,
u_char **after_header,
netsnmp_session *sess)
int
snmpv3_make_report (
netsnmp_pdu *pdu, int error)
int
snmpv3_get_report_type (
netsnmp_pdu *pdu)
int
snmp_pdu_parse (
netsnmp_pdu *pdu, u_char *data, size_t
*length)
u_char *
snmpv3_scopedPDU_parse (
netsnmp_pdu *pdu, u_char *cp,
size_t *length)
int
snmp_send (
netsnmp_session *session,
netsnmp_pdu *pdu)
int
snmp_sess_send (void *sessp,
netsnmp_pdu *pdu)
int
snmp_async_send (
netsnmp_session *session,
netsnmp_pdu
*pdu, snmp_callback callback, void *cb_data)
int
snmp_sess_async_send (void *sessp,
netsnmp_pdu *pdu,
snmp_callback callback, void *cb_data)
void
snmp_free_var (
netsnmp_variable_list *var)
void
snmp_free_varbind (
netsnmp_variable_list *var)
void
snmp_free_pdu (
netsnmp_pdu *pdu)
netsnmp_pdu *
snmp_create_sess_pdu (
netsnmp_transport
*transport, void *opaque, size_t olength)
void
snmp_read (fd_set *fdset)
int
_sess_read (void *sessp, fd_set *fdset)
int
snmp_sess_read (void *sessp, fd_set *fdset)
int
snmp_select_info (int *numfds, fd_set *fdset, struct timeval
*timeout, int *block)
int
snmp_sess_select_info (void *sessp, int *numfds, fd_set *fdset,
struct timeval *timeout, int *block)
void
snmp_timeout (void)
void
snmp_sess_timeout (void *sessp)
int
snmp_oid_ncompare (const oid *in_name1, size_t len1, const oid
*in_name2, size_t len2, size_t max_len)
int
snmp_oid_compare (const oid *in_name1, size_t len1, const oid
*in_name2, size_t len2)
lexicographical compare two object identifiers. int
netsnmp_oid_compare_ll (const oid *in_name1, size_t len1, const oid
*in_name2, size_t len2, size_t *offpt)
lexicographical compare two object identifiers and return the point where
they differ int
snmp_oidtree_compare (const oid *in_name1, size_t
len1, const oid *in_name2, size_t len2)
Compares 2 OIDs to determine if they are equal up until the shortest length.
int
snmp_oidsubtree_compare (const oid *in_name1, size_t len1,
const oid *in_name2, size_t len2)
int
netsnmp_oid_equals (const oid *in_name1, size_t len1, const oid
*in_name2, size_t len2)
Compares 2 OIDs to determine if they are exactly equal. int
netsnmp_oid_is_subtree (const oid *in_name1, size_t len1, const oid
*in_name2, size_t len2)
Identical to netsnmp_oid_equals, except only the length up to len1 is
compared. int
netsnmp_oid_find_prefix (const oid *in_name1, size_t
len1, const oid *in_name2, size_t len2)
Given two OIDs, determine the common prefix to them both.
netsnmp_variable_list *
snmp_pdu_add_variable
(
netsnmp_pdu *pdu, const oid *name, size_t name_length, u_char type,
const u_char *value, size_t len)
netsnmp_variable_list *
snmp_varlist_add_variable
(
netsnmp_variable_list **varlist, const oid *name, size_t name_length,
u_char type, const u_char *value, size_t len)
int
snmp_add_var (
netsnmp_pdu *pdu, const oid *name, size_t
name_length, char type, const char *value)
void *
snmp_sess_pointer (
netsnmp_session *session)
netsnmp_session *
snmp_sess_session (void *sessp)
netsnmp_transport *
snmp_sess_transport (void *sessp)
void
snmp_sess_transport_set (void *sp,
netsnmp_transport *t)
oid *
snmp_duplicate_objid (const oid *objToCopy, size_t objToCopyLen)
u_int
snmp_increment_statistic (int which)
u_int
snmp_increment_statistic_by (int which, int count)
u_int
snmp_get_statistic (int which)
void
snmp_init_statistics (void)
Variables¶
struct
module_init_list *
initlist = NULL
struct
module_init_list *
noinitlist = NULL
netsnmp_subtree *
subtrees
long
long_return
u_char
return_buf [258]
struct timeval
starttime
int
callback_master_num = -1
oid
nullOid [] = { 0, 0 }
int
nullOidLen = sizeof(nullOid)
struct
session_list *
Sessions = NULL
int
snmp_errno = 0
Define Documentation¶
#define timercmp(tvp, uvp, cmp) Value:¶
/* CSTYLED */ ((tvp)->tv_sec cmp (uvp)->tv_sec || ((tvp)->tv_sec == (uvp)->tv_sec && /* CSTYLED */ (tvp)->tv_usec cmp (uvp)->tv_usec))
Definition at line 148 of file snmp_api.c.
Function Documentation¶
int _sess_read (void * sessp, fd_set * fdset)¶
XXX-rks: why no SNMP_FREE(isp->packet); ??
XXX-rks: why no SNMP_FREE(isp->packet); ??
Definition at line 5412 of file snmp_api.c.
int init_agent (const char * app)¶
Initialize the agent. Calls into init_agent_read_config to set tha app's
configuration file in the appropriate default storage space,
NETSNMP_DS_LIB_APPTYPE. Need to call init_agent before calling init_snmp.
Parameters:
app the configuration file to be read
in, gets stored in default storage
Returns:
Returns non-zero on failure and zero on
success.
See also:
init_snmp
Definition at line 270 of file snmp_vars.c.
void init_snmp (const char * type)¶
Calls the functions to do config file loading and mib
module parsing in
the correct order.
Parameters:
type label for the config file
'type'
Returns:
void
See also:
init_agent
Definition at line 787 of file snmp_api.c.
int netsnmp_oid_compare_ll (const oid * in_name1, size_t len1,
const oid * in_name2, size_t len2, size_t * offpt)¶
lexicographical compare two object identifiers and return the point where they
differ Caution: this method is called often by command responder applications
(ie, agent).
Returns:
-1 if name1 < name2, 0 if name1 = name2, 1
if name1 > name2 and offpt = len where name1 != name2
Definition at line 6350 of file snmp_api.c.
int netsnmp_oid_equals (const oid * in_name1, size_t len1, const
oid * in_name2, size_t len2)¶
Compares 2 OIDs to determine if they are exactly equal. This should be faster
than doing a snmp_oid_compare for different length OIDs, since the length is
checked first and if != returns immediately. Might be very slighly faster if
lengths are ==.
Parameters:
in_name1 A pointer to the first oid.
len1 length of the first OID (in segments, not bytes)
in_name2 A pointer to the second oid.
len2 length of the second OID (in segments, not bytes)
Returns:
0 if they are equal, 1 if they are not.
Definition at line 6431 of file snmp_api.c.
int netsnmp_oid_find_prefix (const oid * in_name1, size_t len1,
const oid * in_name2, size_t len2)¶
Given two OIDs, determine the common prefix to them both.
Parameters:
in_name1 A pointer to the first oid.
len1 Length of the first oid.
in_name2 A pointer to the second oid.
len2 Length of the second oid.
Returns:
length of largest common index of commonality.
1 = first, 0 if none * or -1 on error.
Definition at line 6487 of file snmp_api.c.
int netsnmp_oid_is_subtree (const oid * in_name1, size_t len1,
const oid * in_name2, size_t len2)¶
Identical to netsnmp_oid_equals, except only the length up to len1 is compared.
Functionally, this determines if in_name2 is equal or a subtree of in_name1
Parameters:
in_name1 A pointer to the first oid.
len1 length of the first OID (in segments, not bytes)
in_name2 A pointer to the second oid.
len2 length of the second OID (in segments, not bytes)
Returns:
0 if one is a common prefix of the
other.
Definition at line 6467 of file snmp_api.c.
int snmp_oid_compare (const oid * in_name1, size_t len1, const
oid * in_name2, size_t len2)¶
lexicographical compare two object identifiers. Caution: this method is called
often by command responder applications (ie, agent).
Returns:
-1 if name1 < name2, 0 if name1 = name2, 1
if name1 > name2
Definition at line 6301 of file snmp_api.c.
int snmp_oidtree_compare (const oid * in_name1, size_t len1,
const oid * in_name2, size_t len2)¶
Compares 2 OIDs to determine if they are equal up until the shortest length.
Parameters:
in_name1 A pointer to the first oid.
len1 length of the first OID (in segments, not bytes)
in_name2 A pointer to the second oid.
len2 length of the second OID (in segments, not bytes)
Returns:
0 if they are equal, 1 if in_name1 is >
in_name2, or -1 if <.
Definition at line 6403 of file snmp_api.c.
void snmp_shutdown (const char * type)¶
Shuts down the application, saving any needed persistent storage, and
appropriate clean up.
Parameters:
type Label for the config file 'type'
used
Returns:
void
Definition at line 853 of file snmp_api.c.
int snmpv3_engineID_probe (struct session_list * slp,
netsnmp_session * in_session)¶
probe for peer engineID
Parameters:
slp session list pointer.
in_session session for errors
Note:
- •
- called by _sess_open(), snmp_sess_add_ex()
- •
- in_session is the user supplied session provided to those
functions.
- •
- the first session in slp should the internal allocated copy
of in_session
Returns:
Definition at line 1276 of file snmp_api.c.
Author¶
Generated automatically by Doxygen for net-snmp from the source code.