Copyright (C) 2000-2012 |
Manpages SNMP_AGENT_APISection: C Library Functions (3)Updated: 02 Apr 2001 Index Return to Main Contents NAMEsnmp_agent_api - embedding an agent into a external applicationSYNOPSIS#include <ucd-snmp/ucd-snmp-config.h> #include <ucd-snmp/ucd-snmp-includes.h> #include <ucd-snmp/ucd-snmp-agent-includes.h> main () { 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 a agentx client. */ ds_set_boolean(DS_APPLICATION_ID, 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(161, NULL, NULL); /* open port 161 (UDP:snmp) */ /* you're 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 ... -lucdagent -lucdmibs -lsnmp # other libraries may be needed here DESCRIPTIONOur goal is to create a easy to use interface to the ucd-snmp package such that you can take code that you have written that has been designed to be a ucd-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. Starting with version 4.1, the ucd-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. CONFIGURATIONIf you intend to operate as an AgentX sub-agent, you will have to configured the ucd-snmp package as follows:
COMPILINGIn order to make use of any of the above API, you will need to clinch against at least two libraries: the libucdagent library and the libsnmp library. Additionally, if you plan to make use of any of the code in the agent's mib modules (like the AgentX subagent support), you will need to link against the libucdmibs library as well. FUNCTIONS
SEE ALSOselect(2), snmp_api(3), default_store(3), snmp_alarm(3), read_config(3), snmp_config(5), snmpd.conf(5)
IndexThis document was created by man2html, using the manual pages. Time: 14:24:13 GMT, March 29, 2024 |