snmp_error, snmp_api_errstring - send and receive SNMP messages
SYNOPSIS
#include <net-snmp/session_api.h>
void snmp_sess_init ( struct snmp_session * );
struct snmp_session * snmp_open ( struct snmp_session *);
/* Input parameter not used in active sessions */
int snmp_send ( struct snmp_session *session,
struct snmp_pdu *pdu );
int snmp_select_info ( int *numfds, fd_set *fdset,
struct timeval *timeout, int *block );
void snmp_read ( fd_set *fdset );
void snmp_timeout ( void );
int snmp_close ( struct snmp_session *session );
void snmp_free_pdu ( struct snmp_pdu *pdu );
void snmp_error ( struct snmp_session *session,
int *pcliberr, int *psnmperr, char **pperrstring );
char *snmp_api_errstring ( int snmperr );
void snmp_perror ( char * msg );
/* for parsing errors only */
void snmp_sess_perror (char * msg, struct snmp_session *);
/* all other SNMP library errors */
DESCRIPTION
Snmp_sess_init prepares a struct snmp_session that sources transport
characteristics and common information that will be used for a set of
SNMP transactions. After this structure is passed to snmp_open to cre-
ate an SNMP session, the structure is not used.
Snmp_open returns a pointer to a newly-formed struct snmp_session
object, which the application must use to reference the active SNMP
session.
Snmp_send and snmp_free_pdu each take as input a pointer to a struct
snmp_pdu object. This structure contains information that describes a
transaction that will be performed over an open session.
Consult snmp_api.h for the definitions of these structures.
After calling snmp_select_info, select is called with the returned
data. When select returns, snmp_read should be called with the fd_set
returned from select to read each SNMP socket that has input. If
select times out, snmp_timeout should be called to see if the timeout
was intended for SNMP.
DIAGNOSTICS
Previous versions of the library used snmp_get_errno to read the global
variable snmp_errno which may have held the error status within the
SNMP library. The existing method snmp_perror should be used to log
ASN.1 coding errors only.
The new method snmp_sess_perror is provided to capture errors that
occur during the processing of a particular SNMP session.
Snmp_sess_perror calls snmp_error function to obtain the "C" library
error errno , the SNMP library error snmperr , and the SNMP library
detailed error message that is associated with an error that occurred
during a given session.
Note that in all cases except one, snmp_sess_perror should be handed
the struct snmp_session * pointer returned from snmp_open. If
snmp_open returns a null pointer, pass the INPUT struct snmp_session *
pointer used to call snmp_open.
Error return status from snmp_close and snmp_send is indicated by
return of 0. A successful status will return a 1 for snmp_close and
the request id of the packet for snmp_send. Upon successful return
from snmp_send the pdu will be freed by the library.
Consult snmp_api.h for the complete set of SNMP library error values.
The SNMP library error value snmperr can be one of the following val-
ues:
SNMPERR_GENERR A generic error occurred.
SNMPERR_BAD_LOCPORT The local port was bad because it had
already been allocated or permission was
denied.
SNMPERR_BAD_ADDRESS The host name or address given was not use-
able.
SNMPERR_BAD_SESSION The specified session was not open.
SNMPERR_TOO_LONG
SNMPERR_NO_SOCKET
SNMPERR_V2_IN_V1
SNMPERR_V1_IN_V2
SNMPERR_ABORT
SNMPERR_UNKNOWN_PDU
SNMPERR_TIMEOUT
A string representation of the error code can be obtained with
snmp_api_errstring, and a standard error message may be printed using
snmp_perror that functions like the perror standard routine.
SEE ALSO
select(2), snmp_api.h
4.2 Berkeley Distribution 21 Oct 1999 SNMP_API(3)
Man(1) output converted with
man2html
|