summaryrefslogtreecommitdiffstats
path: root/src/libs/zbxsysinfo/linux/diskspace.c
diff options
context:
space:
mode:
authorosmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2005-10-28 13:51:13 +0000
committerosmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2005-10-28 13:51:13 +0000
commit1b9e77ce99c6a790d62ba6a04ef905a566d2d838 (patch)
tree86b43673f9aec9d34e5397bae0f81c6b845fba5c /src/libs/zbxsysinfo/linux/diskspace.c
parentdcdbd43b90679168d6be06673e314ce90b87e444 (diff)
downloadzabbix-1b9e77ce99c6a790d62ba6a04ef905a566d2d838.tar.gz
zabbix-1b9e77ce99c6a790d62ba6a04ef905a566d2d838.tar.xz
zabbix-1b9e77ce99c6a790d62ba6a04ef905a566d2d838.zip
- grouped commands in to the new command with parameters. [only in linux] (Eugene)
git-svn-id: svn://svn.zabbix.com/trunk@2231 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src/libs/zbxsysinfo/linux/diskspace.c')
-rw-r--r--src/libs/zbxsysinfo/linux/diskspace.c59
1 files changed, 59 insertions, 0 deletions
diff --git a/src/libs/zbxsysinfo/linux/diskspace.c b/src/libs/zbxsysinfo/linux/diskspace.c
index 09846515..9db5895a 100644
--- a/src/libs/zbxsysinfo/linux/diskspace.c
+++ b/src/libs/zbxsysinfo/linux/diskspace.c
@@ -22,6 +22,65 @@
#include "common.h"
#include "sysinfo.h"
+int VFS_FS_SIZE(const char *cmd, const char *param, unsigned flags, AGENT_RESULT *result)
+{
+
+#define FS_FNCLIST struct fs_fnclist_s
+FS_FNCLIST
+{
+ char *mode;
+ int (*function)();
+};
+
+ FS_FNCLIST fl[] =
+ {
+ {"free" , VFS_FS_FREE},
+ {"total" , VFS_FS_TOTAL},
+ {"used", VFS_FS_USED},
+ {"pfree" , VFS_FS_PFREE},
+ {"pused" , VFS_FS_PUSED},
+ {0, 0}
+ };
+
+ char fsname[MAX_STRING_LEN];
+ char mode[MAX_STRING_LEN];
+ int i;
+
+ assert(result);
+
+ memset(result, 0, sizeof(AGENT_RESULT));
+
+ if(num_param(param) > 2)
+ {
+ return SYSINFO_RET_FAIL;
+ }
+
+ if(get_param(param, 1, fsname, MAX_STRING_LEN) != 0)
+ {
+ return SYSINFO_RET_FAIL;
+ }
+
+ if(get_param(param, 2, mode, MAX_STRING_LEN) != 0)
+ {
+ mode[0] = '\0';
+ }
+ if(mode[0] == '\0')
+ {
+ /* default parameter */
+ sprintf(mode, "total");
+ }
+
+ for(i=0; fl[i].mode!=0; i++)
+ {
+ if(strncmp(mode, fl[i].mode, MAX_STRING_LEN)==0)
+ {
+ return (fl[i].function)(cmd, fsname, flags, result);
+ }
+ }
+
+ return SYSINFO_RET_FAIL;
+}
+
int VFS_FS_FREE(const char *cmd, const char *param, unsigned flags, AGENT_RESULT *result)
{
#ifdef HAVE_SYS_STATVFS_H