--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/sun/sdk/demo/demo_module_8/demo_module_8.c Fri May 20 12:17:45 2011 +0530
@@ -0,0 +1,109 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ *
+ * U.S. Government Rights - Commercial software. Government users are subject
+ * to the Sun Microsystems, Inc. standard license agreement and applicable
+ * provisions of the FAR and its supplements.
+ *
+ *
+ * This distribution may include materials developed by third parties. Sun,
+ * Sun Microsystems, the Sun logo and Solaris are trademarks or registered
+ * trademarks of Sun Microsystems, Inc. in the U.S. and other countries.
+ *
+ */
+
+#include <net-snmp/net-snmp-config.h>
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/agent/net-snmp-agent-includes.h>
+#include <signal.h>
+
+#include <me1LoadGroup.h>
+
+static int keep_running;
+
+RETSIGTYPE
+stop_server(int a)
+{
+ keep_running = 0;
+}
+
+int
+main(int argc, char **argv)
+{
+ int agentx_subagent = 1;
+ //Change to make an SNMP master agent
+
+ /* print log errors to stderr */
+ snmp_enable_stderrlog();
+
+ /* we're an agentx subagent? */
+ if (agentx_subagent) {
+ /*
+ * This is an agentx client. Specify 0 for
+ * NETSNMP_DS_AGENT_ROLE if the agent is master agent.
+ * Specify 1 for NETSNMP_DS_AGENT_ROLE, if the agent is a
+ * client.
+ */
+ netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID,
+ NETSNMP_DS_AGENT_ROLE, 1);
+ DEBUGMSGTL(("demo_module_8",
+ "NETSNMP_DS_APPLICATION_ID = %s:\n",
+ NETSNMP_DS_APPLICATION_ID));
+ DEBUGMSGTL(("demo_module_8", "NETSNMP_DS_AGENT_ROLE = %s:\n",
+ NETSNMP_DS_AGENT_ROLE));
+ }
+ /*
+ * Initializes the embedded agent. Call this function before the
+ * init_snmp() call. The string name specifies which .conf file to
+ * read when init_snmp() is called later.
+ */
+ init_agent("demo_module_8");
+ DEBUGMSGTL(("demo_module_8", "CALLING init_agent\n"));
+
+ /* initialize mib code here */
+
+ /* mib code: init_me1LoadGroup from me1LoadGroup.c */
+ init_me1LoadGroup();
+
+ /*
+ * Initializes the SNMP library, which causes the agent to read your
+ * application's configuration files. The agent first tries to read
+ * the configuration files named by the string passed as an argument.
+ * You might use this to configure access control, for example.
+ */
+ init_snmp("demo_module_8");
+
+ /*
+ * Initializes the master agent and causes it to listen for SNMP
+ * requests on its default UDP port of 161. Open the port to listen
+ * (defaults to udp: 161)
+ */
+ if (!agentx_subagent)
+ init_master_agent();
+
+ /* In case we get a request to stop (kill -TERM or kill -INT) */
+ keep_running = 1;
+ signal(SIGTERM, stop_server);
+ signal(SIGINT, stop_server);
+
+ /*
+ * The main loop. If you use select(), see snmp_select_info() in
+ * snmp_api(3). This checks for packets arriving on the SNMP port and
+ * processes them if some are found. If block is non zero, the
+ * function call blocks until a packet arrives or an alarm must be
+ * run (see snmp_alarm(3)).
+ *
+ * The return value from this function is a positive integer if packets
+ * were processed, zero if an alarm occurre, and -1 if an error
+ * occured.
+ */
+
+ while (keep_running) {
+ /* OR */
+ agent_check_and_process(1); /* 0 == don't block */
+ }
+ /*
+ * Shuts down the agent, saving any needed persistent storage.
+ */
+ snmp_shutdown("demo_module_8");
+}