position to a block within an SNMP message structure
#include <sys/types.h> #include <sys/select.h> #include <sys/time.h> #include <snmp/snmp_api.h> int snmp_select_info( int *numfds, struct fd_set *fdset, struct timeval *timeout, int *block );
This function is used to return information about what SNMP requires from a select() call. The arguments are:
The timeout must be provided, even if block is 1 (see below).
To have SNMP transactions occur asynchronously, you can invoke the functions snmp_select_info(), snmp_timeout(), and snmp_read() in conjunction with the system call select(). For more information, see select() in the C Library Reference.
For asynchronous transactions, invoke snmp_select_info() with the information you would have passed to select() in the absence of SNMP. The snmp_select_info() function modifies the information, which is subsequently passed to select().
Parameters to select(): | Corresponding parameters to snmp_select_info(): |
---|---|
nfds | numfds |
readfds | fdset |
timeout | timeout-must point to an allocated (but not necessarily initialized) timeval structure. |
The following code segment shows how to use these SNMP functions in conjunction with select():
FD_ZERO(&fdset); numfds=sd+1; FD_SET(sd,&fdset); block=0; tvp=&timeout; timerclear(tvp); tvp->tv_sec = 5; snmp_select_info(&numfds,&fdset,tvp,&block); if(block==1) { tvp = NULL; } count = select(numfds,&fdset,0,0,tvp); if(count==0) snmp_timeout(); if(count>0) snmp_read(&fdset);
The number of open sockets (i.e. the number of open sessions).
SNMP
Safety: | |
---|---|
Interrupt handler | No |
Signal handler | No |
Thread | No |
<snmp_api.h>, snmp_close(), snmp_open(), snmp_pdu, snmp_read(), snmp_select_info(), snmp_send(), snmp_session, snmp_timeout()
select() in the C Library Reference
RFC 1157, FAQ in Internet newsgroup comp.protocols.snmp
Marshall T. Rose, The Simple Book: An Introduction to Internet Management, Revised 2nd ed. (Prentice-Hall, 1996, ISBN 0-13-451659-1)