summaryrefslogtreecommitdiffstats
path: root/src/libs
diff options
context:
space:
mode:
authorhugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2005-06-10 13:05:43 +0000
committerhugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2005-06-10 13:05:43 +0000
commite1c4317816fc5df620b780ec17df7ce5f3dd552c (patch)
tree52d339411f01f1d83ad2ec2a83c310a1c1467db1 /src/libs
parent184ec36c400caf2c7c161fb2d3b6f695d65735af (diff)
Minor changes.
git-svn-id: svn://svn.zabbix.com/trunk@1862 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src/libs')
-rw-r--r--src/libs/zbxsysinfo/Makefile.am2
-rw-r--r--src/libs/zbxsysinfo/diskspace.c319
-rw-r--r--src/libs/zbxsysinfo/sysinfo.c183
3 files changed, 320 insertions, 184 deletions
diff --git a/src/libs/zbxsysinfo/Makefile.am b/src/libs/zbxsysinfo/Makefile.am
index b6461e49..5446ccc2 100644
--- a/src/libs/zbxsysinfo/Makefile.am
+++ b/src/libs/zbxsysinfo/Makefile.am
@@ -1,4 +1,4 @@
SUBDIRS=.
lib_LIBRARIES=libzbxsysinfo.a
-libzbxsysinfo_a_SOURCES=cpu.c inodes.c sensors.c swap.c uptime.c sysinfo.c
+libzbxsysinfo_a_SOURCES=cpu.c diskspace.c inodes.c sensors.c swap.c uptime.c sysinfo.c
libzbxsysinfo_a_LIBADD = ../zbxcrypto/libzbxcrypto.a
diff --git a/src/libs/zbxsysinfo/diskspace.c b/src/libs/zbxsysinfo/diskspace.c
new file mode 100644
index 00000000..c03c6a9a
--- /dev/null
+++ b/src/libs/zbxsysinfo/diskspace.c
@@ -0,0 +1,319 @@
+/*
+** ZABBIX
+** Copyright (C) 2000-2005 SIA Zabbix
+**
+** 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.
+**/
+
+#include "config.h"
+
+#include <errno.h>
+
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+
+/* Definitions of uint32_t under OS/X */
+#ifdef HAVE_STDINT_H
+ #include <stdint.h>
+#endif
+#ifdef HAVE_STRINGS_H
+ #include <strings.h>
+#endif
+#ifdef HAVE_FCNTL_H
+ #include <fcntl.h>
+#endif
+#ifdef HAVE_DIRENT_H
+ #include <dirent.h>
+#endif
+/* Linux */
+#ifdef HAVE_SYS_VFS_H
+ #include <sys/vfs.h>
+#endif
+#ifdef HAVE_SYS_SYSINFO_H
+ #include <sys/sysinfo.h>
+#endif
+/* Solaris */
+#ifdef HAVE_SYS_STATVFS_H
+ #include <sys/statvfs.h>
+#endif
+/* Solaris */
+#ifdef HAVE_SYS_PROCFS_H
+/* This is needed to access the correct procfs.h definitions */
+ #define _STRUCTURED_PROC 1
+ #include <sys/procfs.h>
+#endif
+#ifdef HAVE_SYS_LOADAVG_H
+ #include <sys/loadavg.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+ #include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+ #include <netinet/in.h>
+#endif
+#ifdef HAVE_ARPA_INET_H
+ #include <arpa/inet.h>
+#endif
+/* OpenBSD/Solaris */
+#ifdef HAVE_SYS_PARAM_H
+ #include <sys/param.h>
+#endif
+
+#ifdef HAVE_SYS_MOUNT_H
+ #include <sys/mount.h>
+#endif
+
+/* HP-UX */
+#ifdef HAVE_SYS_PSTAT_H
+ #include <sys/pstat.h>
+#endif
+
+#ifdef HAVE_NETDB_H
+ #include <netdb.h>
+#endif
+
+/* Solaris */
+#ifdef HAVE_SYS_SWAP_H
+ #include <sys/swap.h>
+#endif
+
+/* FreeBSD */
+#ifdef HAVE_SYS_SYSCTL_H
+ #include <sys/sysctl.h>
+#endif
+
+/* Solaris */
+#ifdef HAVE_SYS_SYSCALL_H
+ #include <sys/syscall.h>
+#endif
+
+/* FreeBSD */
+#ifdef HAVE_VM_VM_PARAM_H
+ #include <vm/vm_param.h>
+#endif
+/* FreeBSD */
+#ifdef HAVE_SYS_VMMETER_H
+ #include <sys/vmmeter.h>
+#endif
+/* FreeBSD */
+#ifdef HAVE_SYS_TIME_H
+ #include <sys/time.h>
+#endif
+
+#ifdef HAVE_MACH_HOST_INFO_H
+ #include <mach/host_info.h>
+#endif
+#ifdef HAVE_MACH_MACH_HOST_H
+ #include <mach/mach_host.h>
+#endif
+
+
+#ifdef HAVE_KSTAT_H
+ #include <kstat.h>
+#endif
+
+#ifdef HAVE_LDAP
+ #include <ldap.h>
+#endif
+
+#include "common.h"
+#include "sysinfo.h"
+
+int DISKUSED_PERC(const char *cmd, const char *mountPoint,double *value)
+{
+ double total;
+ double used;
+
+ if(SYSINFO_RET_OK != DISKTOTAL(cmd, mountPoint, &total))
+ {
+ return SYSINFO_RET_FAIL;
+ }
+
+ if(SYSINFO_RET_OK != DISKUSED(cmd, mountPoint, &used))
+ {
+ return SYSINFO_RET_FAIL;
+ }
+
+ if(total == 0)
+ {
+ return SYSINFO_RET_FAIL;
+ }
+
+ *value = 100*used/total;
+ return SYSINFO_RET_OK;
+}
+
+int DISKFREE_PERC(const char *cmd, const char *mountPoint,double *value)
+{
+ double total;
+ double free;
+
+ if(SYSINFO_RET_OK != DISKTOTAL(cmd, mountPoint, &total))
+ {
+ return SYSINFO_RET_FAIL;
+ }
+
+ if(SYSINFO_RET_OK != DISKFREE(cmd, mountPoint, &free))
+ {
+ return SYSINFO_RET_FAIL;
+ }
+
+ if(total == 0)
+ {
+ return SYSINFO_RET_FAIL;
+ }
+
+ *value = 100*free/total;
+ return SYSINFO_RET_OK;
+}
+
+int DISKFREE(const char *cmd, const char *mountPoint,double *value)
+{
+#ifdef HAVE_SYS_STATVFS_H
+ struct statvfs s;
+
+ if ( statvfs( (char *)mountPoint, &s) != 0 )
+ {
+ return SYSINFO_RET_FAIL;
+ }
+
+/* return s.f_bavail * (s.f_bsize / 1024.0);*/
+ *value=s.f_bavail * (s.f_frsize / 1024.0);
+ return SYSINFO_RET_OK;
+#else
+ struct statfs s;
+ long blocks_used;
+ long blocks_percent_used;
+
+ if ( statfs( (char *)mountPoint, &s) != 0 )
+ {
+ return SYSINFO_RET_FAIL;
+ }
+
+ if ( s.f_blocks > 0 ) {
+ blocks_used = s.f_blocks - s.f_bfree;
+ blocks_percent_used = (long)
+ (blocks_used * 100.0 / (blocks_used + s.f_bavail) + 0.5);
+
+/* printf(
+ "%7.0f %7.0f %7.0f %5ld%% %s\n"
+ ,s.f_blocks * (s.f_bsize / 1024.0)
+ ,(s.f_blocks - s.f_bfree) * (s.f_bsize / 1024.0)
+ ,s.f_bavail * (s.f_bsize / 1024.0)
+ ,blocks_percent_used
+ ,mountPoint);
+*/
+ *value=s.f_bavail * (s.f_bsize / 1024.0);
+ return SYSINFO_RET_OK;
+
+ }
+
+ return SYSINFO_RET_FAIL;
+#endif
+}
+
+int DISKUSED(const char *cmd, const char *mountPoint,double *value)
+{
+#ifdef HAVE_SYS_STATVFS_H
+ struct statvfs s;
+
+ if ( statvfs( (char *)mountPoint, &s) != 0 )
+ {
+ return SYSINFO_RET_FAIL;
+ }
+
+/* return (s.f_blocks-s.f_bavail) * (s.f_bsize / 1024.0);*/
+ *value=(s.f_blocks-s.f_bavail) * (s.f_frsize / 1024.0);
+ return SYSINFO_RET_OK;
+#else
+ struct statfs s;
+ long blocks_used;
+ long blocks_percent_used;
+
+ if ( statfs( (char *)mountPoint, &s) != 0 )
+ {
+ return SYSINFO_RET_FAIL;
+ }
+
+ if ( s.f_blocks > 0 ) {
+ blocks_used = s.f_blocks - s.f_bfree;
+ blocks_percent_used = (long)
+ (blocks_used * 100.0 / (blocks_used + s.f_bavail) + 0.5);
+
+/* printf(
+ "%7.0f %7.0f %7.0f %5ld%% %s\n"
+ ,s.f_blocks * (s.f_bsize / 1024.0)
+ ,(s.f_blocks - s.f_bfree) * (s.f_bsize / 1024.0)
+ ,s.f_bavail * (s.f_bsize / 1024.0)
+ ,blocks_percent_used
+ ,mountPoint);
+*/
+ *value=blocks_used * (s.f_bsize / 1024.0);
+ return SYSINFO_RET_OK;
+
+ }
+
+ return SYSINFO_RET_FAIL;
+#endif
+}
+
+int DISKTOTAL(const char *cmd, const char *mountPoint,double *value)
+{
+#ifdef HAVE_SYS_STATVFS_H
+ struct statvfs s;
+
+ if ( statvfs( (char *)mountPoint, &s) != 0 )
+ {
+ return SYSINFO_RET_FAIL;
+ }
+
+/* return s.f_blocks * (s.f_bsize / 1024.0);*/
+ *value= s.f_blocks * (s.f_frsize / 1024.0);
+ return SYSINFO_RET_OK;
+#else
+ struct statfs s;
+ long blocks_used;
+ long blocks_percent_used;
+
+ if ( statfs( (char *)mountPoint, &s) != 0 )
+ {
+ return SYSINFO_RET_FAIL;
+ }
+
+ if ( s.f_blocks > 0 ) {
+ blocks_used = s.f_blocks - s.f_bfree;
+ blocks_percent_used = (long)
+ (blocks_used * 100.0 / (blocks_used + s.f_bavail) + 0.5);
+
+/* printf(
+ "%7.0f %7.0f %7.0f %5ld%% %s\n"
+ ,s.f_blocks * (s.f_bsize / 1024.0)
+ ,(s.f_blocks - s.f_bfree) * (s.f_bsize / 1024.0)
+ ,s.f_bavail * (s.f_bsize / 1024.0)
+ ,blocks_percent_used
+ ,mountPoint);
+*/
+ *value=s.f_blocks * (s.f_bsize / 1024.0);
+ return SYSINFO_RET_OK;
+
+ }
+
+ return SYSINFO_RET_FAIL;
+#endif
+}
diff --git a/src/libs/zbxsysinfo/sysinfo.c b/src/libs/zbxsysinfo/sysinfo.c
index dea2e2c8..3ea2fd9d 100644
--- a/src/libs/zbxsysinfo/sysinfo.c
+++ b/src/libs/zbxsysinfo/sysinfo.c
@@ -1082,189 +1082,6 @@ int NETLOADOUT15(const char *cmd, const char *parameter,double *value)
return get_stat(key,value);
}
-int DISKUSED_PERC(const char *cmd, const char *mountPoint,double *value)
-{
- double total;
- double used;
-
- if(SYSINFO_RET_OK != DISKTOTAL(cmd, mountPoint, &total))
- {
- return SYSINFO_RET_FAIL;
- }
-
- if(SYSINFO_RET_OK != DISKUSED(cmd, mountPoint, &used))
- {
- return SYSINFO_RET_FAIL;
- }
-
- if(total == 0)
- {
- return SYSINFO_RET_FAIL;
- }
-
- *value = 100*used/total;
- return SYSINFO_RET_OK;
-}
-
-int DISKFREE_PERC(const char *cmd, const char *mountPoint,double *value)
-{
- double total;
- double free;
-
- if(SYSINFO_RET_OK != DISKTOTAL(cmd, mountPoint, &total))
- {
- return SYSINFO_RET_FAIL;
- }
-
- if(SYSINFO_RET_OK != DISKFREE(cmd, mountPoint, &free))
- {
- return SYSINFO_RET_FAIL;
- }
-
- if(total == 0)
- {
- return SYSINFO_RET_FAIL;
- }
-
- *value = 100*free/total;
- return SYSINFO_RET_OK;
-}
-
-int DISKFREE(const char *cmd, const char *mountPoint,double *value)
-{
-#ifdef HAVE_SYS_STATVFS_H
- struct statvfs s;
-
- if ( statvfs( (char *)mountPoint, &s) != 0 )
- {
- return SYSINFO_RET_FAIL;
- }
-
-/* return s.f_bavail * (s.f_bsize / 1024.0);*/
- *value=s.f_bavail * (s.f_frsize / 1024.0);
- return SYSINFO_RET_OK;
-#else
- struct statfs s;
- long blocks_used;
- long blocks_percent_used;
-
- if ( statfs( (char *)mountPoint, &s) != 0 )
- {
- return SYSINFO_RET_FAIL;
- }
-
- if ( s.f_blocks > 0 ) {
- blocks_used = s.f_blocks - s.f_bfree;
- blocks_percent_used = (long)
- (blocks_used * 100.0 / (blocks_used + s.f_bavail) + 0.5);
-
-/* printf(
- "%7.0f %7.0f %7.0f %5ld%% %s\n"
- ,s.f_blocks * (s.f_bsize / 1024.0)
- ,(s.f_blocks - s.f_bfree) * (s.f_bsize / 1024.0)
- ,s.f_bavail * (s.f_bsize / 1024.0)
- ,blocks_percent_used
- ,mountPoint);
-*/
- *value=s.f_bavail * (s.f_bsize / 1024.0);
- return SYSINFO_RET_OK;
-
- }
-
- return SYSINFO_RET_FAIL;
-#endif
-}
-
-int DISKUSED(const char *cmd, const char *mountPoint,double *value)
-{
-#ifdef HAVE_SYS_STATVFS_H
- struct statvfs s;
-
- if ( statvfs( (char *)mountPoint, &s) != 0 )
- {
- return SYSINFO_RET_FAIL;
- }
-
-/* return (s.f_blocks-s.f_bavail) * (s.f_bsize / 1024.0);*/
- *value=(s.f_blocks-s.f_bavail) * (s.f_frsize / 1024.0);
- return SYSINFO_RET_OK;
-#else
- struct statfs s;
- long blocks_used;
- long blocks_percent_used;
-
- if ( statfs( (char *)mountPoint, &s) != 0 )
- {
- return SYSINFO_RET_FAIL;
- }
-
- if ( s.f_blocks > 0 ) {
- blocks_used = s.f_blocks - s.f_bfree;
- blocks_percent_used = (long)
- (blocks_used * 100.0 / (blocks_used + s.f_bavail) + 0.5);
-
-/* printf(
- "%7.0f %7.0f %7.0f %5ld%% %s\n"
- ,s.f_blocks * (s.f_bsize / 1024.0)
- ,(s.f_blocks - s.f_bfree) * (s.f_bsize / 1024.0)
- ,s.f_bavail * (s.f_bsize / 1024.0)
- ,blocks_percent_used
- ,mountPoint);
-*/
- *value=blocks_used * (s.f_bsize / 1024.0);
- return SYSINFO_RET_OK;
-
- }
-
- return SYSINFO_RET_FAIL;
-#endif
-}
-
-int DISKTOTAL(const char *cmd, const char *mountPoint,double *value)
-{
-#ifdef HAVE_SYS_STATVFS_H
- struct statvfs s;
-
- if ( statvfs( (char *)mountPoint, &s) != 0 )
- {
- return SYSINFO_RET_FAIL;
- }
-
-/* return s.f_blocks * (s.f_bsize / 1024.0);*/
- *value= s.f_blocks * (s.f_frsize / 1024.0);
- return SYSINFO_RET_OK;
-#else
- struct statfs s;
- long blocks_used;
- long blocks_percent_used;
-
- if ( statfs( (char *)mountPoint, &s) != 0 )
- {
- return SYSINFO_RET_FAIL;
- }
-
- if ( s.f_blocks > 0 ) {
- blocks_used = s.f_blocks - s.f_bfree;
- blocks_percent_used = (long)
- (blocks_used * 100.0 / (blocks_used + s.f_bavail) + 0.5);
-
-/* printf(
- "%7.0f %7.0f %7.0f %5ld%% %s\n"
- ,s.f_blocks * (s.f_bsize / 1024.0)
- ,(s.f_blocks - s.f_bfree) * (s.f_bsize / 1024.0)
- ,s.f_bavail * (s.f_bsize / 1024.0)
- ,blocks_percent_used
- ,mountPoint);
-*/
- *value=s.f_blocks * (s.f_bsize / 1024.0);
- return SYSINFO_RET_OK;
-
- }
-
- return SYSINFO_RET_FAIL;
-#endif
-}
-
int TCP_LISTEN(const char *cmd, const char *porthex,double *value)
{
#ifdef HAVE_PROC