+ subagent selection based on "uname -s"
authorAlex Kirhenshtein <alk@netxms.org>
Tue, 17 Aug 2004 10:24:18 +0000 (10:24 +0000)
committerAlex Kirhenshtein <alk@netxms.org>
Tue, 17 Aug 2004 10:24:18 +0000 (10:24 +0000)
.gitattributes
configure.ac
src/agent/subagents/Makefile.am
src/agent/subagents/linux/Makefile.am [new file with mode: 0644]
src/agent/subagents/linux/linux.cpp [new file with mode: 0644]

index efa3386..ca583e0 100644 (file)
@@ -71,6 +71,8 @@ src/agent/core/sysinfo.cpp -text
 src/agent/core/tools.cpp -text
 src/agent/core/win32.cpp -text
 src/agent/subagents/Makefile.am -text
+src/agent/subagents/linux/Makefile.am -text
+src/agent/subagents/linux/linux.cpp -text
 src/agent/subagents/skeleton/Makefile.am -text
 src/agent/subagents/skeleton/skeleton.cpp -text
 src/agent/subagents/skeleton/skeleton.dsp -text
index fb2644e..396e336 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: configure.ac,v 1.20 2004-08-17 09:09:10 victor Exp $
+# $Id: configure.ac,v 1.21 2004-08-17 10:24:15 alk Exp $
 #
 # Process this file with autoconf to produce a configure script.
 #
@@ -266,6 +266,24 @@ AC_SUBST(PTHREAD_LIBS)
 AC_CHECK_FUNCS([pthread_cond_reltimedwait_np])
 
 # --------------------------------------------------------------------------
+# OS type
+case `uname -s` in
+       Linux)
+               SUBAGENT_DIRS="linux"
+               ;;
+       FreeBSD)
+               SUBAGENT_DIRS="freebsd"
+               ;;
+       SunOS)
+               SUBAGENT_DIRS="sunos"
+               ;;
+       *)
+               # unknown
+               ;;
+esac
+AC_SUBST(SUBAGENT_DIRS)
+
+# --------------------------------------------------------------------------
 
 # shared libs versions
 #
@@ -330,6 +348,7 @@ AC_CONFIG_FILES([
    src/agent/core/Makefile
    src/agent/subagents/Makefile
    src/agent/subagents/skeleton/Makefile
+   src/agent/subagents/linux/Makefile
 ])
 
 AC_OUTPUT
index 5c5c427..3e63ab8 100644 (file)
@@ -8,4 +8,4 @@
 # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
 # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
-SUBDIRS = skeleton
+SUBDIRS = skeleton ${SUBAGENT_DIRS}
diff --git a/src/agent/subagents/linux/Makefile.am b/src/agent/subagents/linux/Makefile.am
new file mode 100644 (file)
index 0000000..a402a93
--- /dev/null
@@ -0,0 +1,4 @@
+INCLUDES=-I@top_srcdir@/include
+
+lib_LTLIBRARIES = libnsm_linux.la
+libnsm_linux_la_SOURCES = linux.cpp
diff --git a/src/agent/subagents/linux/linux.cpp b/src/agent/subagents/linux/linux.cpp
new file mode 100644 (file)
index 0000000..ed702dd
--- /dev/null
@@ -0,0 +1,97 @@
+/* $Id: linux.cpp,v 1.1 2004-08-17 10:24:18 alk Exp $ */
+
+/* 
+** NetXMS subagent for GNU/Linux
+** Copyright (C) 2004 Alex Kirhenshtein
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+**
+** $module: linux.cpp
+**
+**/
+
+#include <nms_common.h>
+#include <nms_agent.h>
+
+
+//
+// Hanlder functions
+//
+
+static LONG H_Version(char *pszParam, char *pArg, char *pValue)
+{
+   ret_uint(pValue, 0x01000000);
+
+   return SYSINFO_RC_SUCCESS;
+}
+
+static LONG H_Echo(char *pszParam, char *pArg, char *pValue)
+{
+   char szArg[256];
+
+   NxGetParameterArg(pszParam, 1, szArg, 255);
+   ret_string(pValue, szArg);
+
+   return SYSINFO_RC_SUCCESS;
+}
+
+static LONG H_Enum(char *pszParam, char *pArg, NETXMS_VALUES_LIST *pValue)
+{
+   int i;
+   char szValue[256];
+
+   for(i = 0; i < 10; i++)
+   {
+      sprintf(szValue, "Value %d", i);
+      NxAddResultString(pValue, szValue);
+   }
+
+   return SYSINFO_RC_SUCCESS;
+}
+
+
+//
+// Subagent information
+//
+
+static NETXMS_SUBAGENT_PARAM m_parameters[] =
+{
+   { "Skeleton.Version", H_Version, NULL },
+   { "Skeleton.Echo(*)", H_Echo, NULL }
+};
+static NETXMS_SUBAGENT_ENUM m_enums[] =
+{
+   { "Skeleton.Enum", H_Enum, NULL }
+};
+static NETXMS_SUBAGENT_INFO m_info = { 0x01000000, 2, m_parameters, 1, m_enums };
+
+
+//
+// Entry point for NetXMS agent
+//
+
+extern "C" BOOL NxSubAgentInit(NETXMS_SUBAGENT_INFO **ppInfo)
+{
+   *ppInfo = &m_info;
+
+   return TRUE;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+/*
+
+$Log: not supported by cvs2svn $
+
+*/