netsnmp_agent_api man page on Slackware

Man page or keyword search:  
man Server   14563 pages
apropos Keyword Search (all sections)
Output format
Slackware logo
[printable version]

NETSNMP_AGENT_API(3)		   Net-SNMP		  NETSNMP_AGENT_API(3)

NAME
       netsnmp_agent_api - embedding an agent into a external application

SYNOPSIS
       #include <net-snmp/net-snmp-config.h>
       #include <net-snmp/net-snmp-includes.h>
       #include <net-snmp/agent/net-snmp-agent-includes.h>

       int
       main (int argc, char *argv[])
       {
	 int agentx_subagent = 1;  /* Change this if you're a master agent.  */

	 snmp_enable_stderrlog();

	 /*  If we're an AgentX subagent...  */
	 if (agentx_subagent) {
	     /* ...make us an AgentX client.  */
	     netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID,
				    NETSNMP_DS_AGENT_ROLE, 1);
	 }

	 init_agent("yourappname");

	 /*  Initialize your MIB code here.  */
	 init_my_mib_code();

	 /*  `yourappname' will be used to read yourappname.conf files.	 */
	 init_snmp("yourappname");

	 /*  If we're going to be a SNMP master agent...  */
	 if (!agentx_subagent)
	     init_master_agent();  /*  Listen on default port (161).  */

	 /*  Your main loop here...  */
	 while (whatever) {
	     /* if you use select(), see snmp_api(3) */
	     /*	    --- OR ---	*/
	     agent_check_and_process(0); /* 0 == don't block */
	 }

	 /*  At shutdown time:	*/
	 snmp_shutdown("yourappname");
       }

       Then:
       $(CC) ... `net-snmp-config --agent-libs`

DESCRIPTION
       Our  goal  is to create a easy to use interface to the Net-SNMP package
       such that you can take  code  that  you	have  written  that  has  been
       designed	 to  be	 a  Net-SNMP  MIB module and embed it into an external
       application where you can either chose to be a SNMP master agent or  an
       AgentX  sub-agent  using	 the  same MIB module code.  Our suggestion is
       that you use our (or another) SNMP agent as the AgentX master agent and
       chose to become an AgentX subagent which then attaches to the master.

       The  Net-SNMP  package  provides	 a pair of libraries that enables easy
       embedding of an SNMP or AgentX agent into an external software package.
       AgentX  is  an extensible protocol designed to allow multiple SNMP sub-
       agents all run on one machine under a single SNMP master agent.	It  is
       defined in RFC 2741.

       You will need to perform a few tasks in order to accomplish this. First
       off, you will need to initialize both the SNMP  library	and  the  SNMP
       agent  library.	As  indicated above, this is done slightly differently
       depending on whether or not you are going to perform as a master	 agent
       or an AgentX sub-agent.

CONFIGURATION
       If  you intend to operate as an AgentX sub-agent, you will have to con‐
       figured the Net-SNMP package with agentx support (which is turned on by
       default, so just don't turn it off)

       Additionally, you will need to link against the Net-SNMP libraries (use
       the output of "net-snmp-config --agent-libs" to get a library list) and
       call subagent_pre_init() as indicated above.

COMPILING
       In  order  to  make  use of any of the above API, you will need to link
       against at least the four libraries listed above.

FUNCTIONS
       where to find out more information on them.  It is certainly not a com‐
       plete list of what is available within all the Net-SNMP libraries.

       snmp_enable_stderrlog()
	      Logs  error  output  from	 the  SNMP agent to the standard error
	      stream.

       netsnmp_ds_set_boolean()
	      Please see the default_store(3) manual page for more information
	      about this API.

       init_agent(char *name)
	      Initializes  the	embedded  agent.  This should be called before
	      the init_snmp() call.  name is used to dictate what  .conf  file
	      to read when init_snmp() is called later.

       init_snmp(char *name)
	      Initializes  the SNMP library.  Note that one of the things this
	      will do will be to read configuration files in an effort to con‐
	      figure  your application. It will attempt to read the configura‐
	      tion files named by the name string that you passed in.  It  can
	      be  used to configure access control, for instance.   Please see
	      the  netsnmp_config_api(3),  snmp_config(5),  and	 snmpd.conf(5)
	      manual pages for further details on this subject.

       init_master_agent(void)
	      Initializes  the	master	agent and causes it to listen for SNMP
	      requests on its default UDP port of 161.

       agent_check_and_process(int block)
	      This checks for packets arriving on the SNMP port and  processes
	      them if some are found.  If block is non-zero, the function call
	      will block until a packet arrives or an alarm must be  run  (see
	      snmp_alarm(3)).	The return value from this function is a posi‐
	      tive integer  if	packets	 were  processed,  zero	 if  an	 alarm
	      occurred and -1 if an error occured.

       snmp_shutdown(char *name);
	      This shuts down the agent, saving any needed persistent storage,
	      etc.

SEE ALSO
       http://www.net-snmp.org/tutorial-5/toolkit/   select(2),	  snmp_api(3),
       default_store(3), snmp_alarm(3), netsnmp_config_api(3), snmp_config(5),
       snmpd.conf(5)

V5.7.2				  13 Aug 2010		  NETSNMP_AGENT_API(3)
[top]
                             _         _         _ 
                            | |       | |       | |     
                            | |       | |       | |     
                         __ | | __ __ | | __ __ | | __  
                         \ \| |/ / \ \| |/ / \ \| |/ /  
                          \ \ / /   \ \ / /   \ \ / /   
                           \   /     \   /     \   /    
                            \_/       \_/       \_/ 
More information is available in HTML format for server Slackware

List of man pages available for Slackware

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net