Modules
groupasn1 parsing and datatype manipulation routines.
groupA generic callback mechanism
groupgeneric linked-list data handling with a string as a key.
groupstorage space for defaults
The purpose of the default storage is three-fold:.
groupmib parsing and datatype manipulation routines.
groupStore and retrieve data referenced by an OID.
This is essentially a way of storing data associated with a given
OID.
groupparsing 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.
groupgeneric library based alarm timers for various parts of an
application
groupvarious PDU processing routines
groupgeneric logging for net-snmp
groupMemory Utility Routines
Data Structures
struct snmp_internal_session
struct session_list
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 NFDBITS (sizeof(fd_mask) * NBBY) /* bits per mask */
#define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) %
NFDBITS)))
#define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) %
NFDBITS)))
#define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) %
NFDBITS)))
#define FD_ZERO(p) memset((p), 0, sizeof(*(p)))
#define DEFAULT_COMMUNITY 'public'
#define DEFAULT_RETRIES 5
#define DEFAULT_TIMEOUT 1000000L
#define DEFAULT_REMPORT SNMP_PORT
#define DEFAULT_ENTERPRISE default_enterprise
int snmp_get_errno (void)
void snmp_synch_reset (netsnmp_session *notused)
void snmp_synch_setup (netsnmp_session *notused)
const char * strerror (int err)
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_enums (void)
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)
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
int snmp_close_sessions (void)
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 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 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 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.
u_int snmp_increment_statistic_by (int which, int count)
u_int snmp_get_statistic (int which)
void snmp_init_statistics (void)
Variables
netsnmp_subtree * subtrees
long long_return
u_char return_buf [258]
timeval starttime
int callback_master_num = -1
oid nullOid [] = { 0, 0 }
int nullOidLen = sizeof(nullOid)
session_list * Sessions = NULL
int snmp_errno = 0
long long_return
u_char return_buf []
oid nullOid []
int nullOidLen
Define Documentation
#define DEBUGPRINTPDUTYPE(token, type)
Value:.nf switch(type) { case SNMP_MSG_GET:
DEBUGDUMPSECTION(token, 'PDU-GET'); break; case
SNMP_MSG_GETNEXT: DEBUGDUMPSECTION(token, 'PDU-GETNEXT');
break; case SNMP_MSG_RESPONSE: DEBUGDUMPSECTION(token,
'PDU-RESPONSE'); break; case SNMP_MSG_SET:
DEBUGDUMPSECTION(token, 'PDU-SET'); break; case
SNMP_MSG_GETBULK: DEBUGDUMPSECTION(token, 'PDU-GETBULK');
break; case SNMP_MSG_INFORM: DEBUGDUMPSECTION(token,
'PDU-INFORM'); break; case SNMP_MSG_TRAP2:
DEBUGDUMPSECTION(token, 'PDU-TRAP2'); break; case
SNMP_MSG_REPORT: DEBUGDUMPSECTION(token, 'PDU-REPORT');
break; default: DEBUGDUMPSECTION(token, 'PDU-UNKNOWN');
break; }
Definition at line 375 of file snmp_api.c.
#define timercmp(tvp, uvp, cmp)
Value:.nf /* 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 145 of file snmp_api.c.
Function Documentation
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:
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 779 of file snmp_api.c.
References init_mib().
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 6213 of file snmp_api.c.
Referenced by netsnmp_cache_find_by_oid(), netsnmp_old_api_helper(),
and unregister_mib_context().
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 6269 of file snmp_api.c.
References SNMP_MIN.
Returns:
0 if one is a common prefix of the other.
Definition at line 6249 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 6145 of file snmp_api.c.
Referenced by check_getnext_results(), netsnmp_check_getnext_reply(),
netsnmp_insert_iterator_context(), netsnmp_insert_table_row(),
netsnmp_row_merge_helper_handler(), netsnmp_table_data_add_row(),
netsnmp_table_data_get_from_oid(), netsnmp_table_data_helper_handler(),
netsnmp_table_iterator_helper_handler(), snmp_oidtree_compare(), and
table_helper_handler().
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 6194 of file snmp_api.c.
References snmp_oid_compare().
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 847 of file snmp_api.c.
References shutdown_mib(), snmp_alarm_unregister_all(), and
snmp_call_callbacks().
Man(1) output converted with
man2html
|