Logo
Home page Net-SNMP

Archive Search:

Require all words?

Site Search:
Google
Main Page | Modules | Data Structures | File List | Data Fields | Related Pages | Examples

The Net-SNMP library


Modules

group   asn1 parsing and datatype manipulation routines.
group   A generic callback mechanism
group   generic linked-list data handling with a string as a key.
group   storage space for defaults
  The purpose of the default storage is three-fold:.
group   mib parsing and datatype manipulation routines.
group   Store and retrieve data referenced by an OID.
  This is essentially a way of storing data associated with a given OID.
group   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.
group   generic library based alarm timers for various parts of an application
group   various PDU processing routines
group   generic logging for net-snmp
group   Memory 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)
#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
#define  DEFAULT_TIME   0
#define  MAXIMUM_PACKET_SIZE   0x7fffffff
#define  DEBUGPRINTPDUTYPE(token, type)   DEBUGDUMPSECTION(token, snmp_pdu_type(type))
#define  ERROR_STAT_LENGTH   11

Typedefs

typedef long  fd_mask

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_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)
  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_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  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  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

module_init_list *  initlist = NULL
module_init_list *  noinitlist = NULL
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

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 147 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 5398 of file snmp_api.c.

References snmp_session::callback, snmp_session::callback_magic, snmp_session::flags, snmp_session::next, snmp_session::s_errno, snmp_session::s_snmp_errno, SNMP_FREE, and snmp_log().

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.

References netsnmp_ds_set_boolean(), netsnmp_init_helpers(), and snmp_log().

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 793 of file snmp_api.c.

References init_mib().

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 6333 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 6405 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 6461 of file snmp_api.c.

References SNMP_MIN.

Referenced by netsnmp_add_varbind_to_cache().

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 6441 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 6284 of file snmp_api.c.

Referenced by check_getnext_results(), netsnmp_check_getnext_reply(), netsnmp_container_table_row_insert(), 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_tdata_compare_oid(), 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 6386 of file snmp_api.c.

References snmp_oid_compare().

Referenced by snmp_set_var_value().

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 862 of file snmp_api.c.

References shutdown_mib(), snmp_alarm_unregister_all(), and snmp_call_callbacks().

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:
0 : error

1 : ok

Definition at line 1278 of file snmp_api.c.

References snmp_session::engineBoots, snmp_session::engineTime, snmp_session::flags, snmp_session::s_snmp_errno, snmp_session::securityEngineID, snmp_session::securityEngineIDLen, and snmp_session::version.


Generated on Fri Dec 30 13:47:58 2005 for net-snmp by  doxygen 1.3.9.1

Valid CSS!


Last modified: Thursday, 01-Mar-2007 16:20:05 PST
For questions regarding web content and site functionality, please write to the net-snmp-users mail list.