Man Linux: Main Page and Category List

NAME

       sk_new_session - create a new SNMPSESSION

SYNOPSIS

       #include <snmpkit.h>

       SNMPSESSION          *sk_new_session(char          *host,          void
       *(start_routine)(SNMPSESSION*), const char *community);

       SNMPSESSION **sk_new_sessions(char *hostspec,const char *community,void
       *(start_routine)(SNMPSESSION*));

       SNMPSESSION   **sk_new_sessions_multi(char   **hostspecs,   const  char
       *community, void *(start_routine)(SNMPSESSION*));

DESCRIPTION

       An SNMP_session instance is an  object  that  handles  the  details  of
       communicating an SNMP enabled device such as a printer or a router.

       There  are three versions of sk_new_sessions. They two of the parmeters
       are identical. The first one varies between the different  versions  of
       the function.

       A  SNMP  community  string  acts as a password.  Normally there are two
       strings set for an SNMP enabled device.  One will allow the user  write
       access  to settings via SNMP commands and the second password will only
       allow for read access to device settings.

       You must also provide a pointer to  the  start_routine  function.   The
       start_routine()  is  the  function  used  to  actually  do  the work of
       communicating with the network device. In other words, this function is
       called when the thread handling this particular device is activated. In
       other words, this function actually loads up the packets with the  SNMP
       objects and then makes the requsts. Each SNMPSESSION has its own thread
       and once the thread is created. When  the  start_function  function  is
       called, it is passed the SNMPSESSION pointer as a paramter.

       The  first  parameter  varies  between  the  functions.  In the case of
       sk_new_session it is simply  a  hostname  in  a  format  understood  by
       gethostbyname(3).  In  the case of sk_new_sessions, instead of a simple
       hostname a hostspec is passed in. A hostspec can be a  simple  hostname
       but  it can also be an IP address range in the form of 192.168.0.1-5 or
       an  IP  address  and  a   subnet   mask   in   the   form   of   either
       192.168.0.0/255.255.255.0   or  192.168.0.0/24.  A  hostspec  may  also
       include  a  community  name  by  enclosing  that  in  parenthesis  like
       192.168.0.1(public).

RETURN VALUE

       Upon  successful  completion  sk_new_session  returns  a  pointer  to a
       SNMPSESSION. sk_new_sessions and sk_new_sessions_multi  both  return  a
       null  terminated  array  of  SNMPSESSION  pointers.  Otherwise  NULL is
       returned and sk_errno is set to indicate the error.

ERRORS

       SK_MEM_FAIL
              Memory allocation failed.

       SK_BAD_PROTO
              UDP protocol is not supported. See getprotobyname(3).

       SK_SOCKET_FAIL
              Can’t create socket. See socket(2).

       SK_RECEIVER_FAIL
              Can’t create a  thread  to  receive  packets.  Sets  errno.  See
              pthread_create(3).

       SK_HOSTNOTFOUND
              Host not found. Sets h_errno. See gethostbyname(3).

       SK_REAPER_FAIL
              Can’t  create  a  thread  to reap spent threads. Sets errno. See
              pthread_create(3).

       SK_WORKER_FAIL
              Can’t create worker thread. Sets errno. See pthread_create(3).

       SK_UNTERM_HOSPEC
              Community in hostspec doesn’t have ending parenthesis.

       SK_OCTET_OVERFLOW
              One of the octets in hostspec is greater than 255.

       SK_BAD_NETMASK
              Subnet mask wasn’t in a understood form.

       SK_NETMASK_OVERFLOW
              Number of bits in subnet mask is too large.

       SK_DIS_NETMASK
              Subnet mask had discontinious bits.

SEE ALSO

       sk_strerror(3),       sk_snmpsessions_done(3),       sk_new_sfiller(3),
       sk_new_snmptable(3)