summaryrefslogtreecommitdiffstats
path: root/src/libs
diff options
context:
space:
mode:
authorosmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2005-11-07 12:00:41 +0000
committerosmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2005-11-07 12:00:41 +0000
commitbacd714155a4829cb720c73474cfbf655fb5fe94 (patch)
treee0156678c7d73b15f35e31d7db84ca7e00b9e34d /src/libs
parentc24747aacafa259dcfb65c3baeeda0a27311b7fc (diff)
- added support of kernel.maxfiles for Linux (Eugene)
git-svn-id: svn://svn.zabbix.com/trunk@2285 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src/libs')
-rw-r--r--src/libs/zbxsysinfo/linux/diskio.c1
-rw-r--r--src/libs/zbxsysinfo/linux/kernel.c35
-rw-r--r--src/libs/zbxsysinfo/linux/net.c1
3 files changed, 21 insertions, 16 deletions
diff --git a/src/libs/zbxsysinfo/linux/diskio.c b/src/libs/zbxsysinfo/linux/diskio.c
index 581edd80..3b8aed74 100644
--- a/src/libs/zbxsysinfo/linux/diskio.c
+++ b/src/libs/zbxsysinfo/linux/diskio.c
@@ -110,6 +110,7 @@ static int get_disk_stat(const char *interface, struct disk_stat_s *result)
break;
}
}
+ fclose(f);
}
if(ret != SYSINFO_RET_OK)
diff --git a/src/libs/zbxsysinfo/linux/kernel.c b/src/libs/zbxsysinfo/linux/kernel.c
index 14157f22..64ba3fd7 100644
--- a/src/libs/zbxsysinfo/linux/kernel.c
+++ b/src/libs/zbxsysinfo/linux/kernel.c
@@ -24,30 +24,33 @@
int KERNEL_MAXFILES(const char *cmd, const char *param, unsigned flags, AGENT_RESULT *result)
{
-#ifdef HAVE_FUNCTION_SYSCTL_KERN_MAXFILES
- int mib[2],len;
- int maxfiles;
+ int ret = SYSINFO_RET_FAIL;
+ char line[MAX_STRING_LEN];
+
+ unsigned long value = 0;
+
+ FILE *f;
assert(result);
clean_result(result);
- mib[0]=CTL_KERN;
- mib[1]=KERN_MAXFILES;
-
- len=sizeof(maxfiles);
-
- if(sysctl(mib,2,&maxfiles,(size_t *)&len,NULL,0) != 0)
+ f=fopen("/proc/sys/fs/file-max","r");
+ if(f)
{
- return SYSINFO_RET_FAIL;
+ if(fgets(line,MAX_STRING_LEN,f) != NULL);
+ {
+ if(sscanf(line,"%lu\n", &value) == 1)
+ {
+ result->type |= AR_DOUBLE;
+ result->dbl = (double) value;
+ ret = SYSINFO_RET_OK;
+ }
+ }
+ fclose(f);
}
- result->type |= AR_DOUBLE;
- result->dbl = (double)(maxfiles);
- return SYSINFO_RET_OK;
-#else
- return SYSINFO_RET_FAIL;
-#endif
+ return ret;
}
int KERNEL_MAXPROC(const char *cmd, const char *param, unsigned flags, AGENT_RESULT *result)
diff --git a/src/libs/zbxsysinfo/linux/net.c b/src/libs/zbxsysinfo/linux/net.c
index 74abf75f..77382e1f 100644
--- a/src/libs/zbxsysinfo/linux/net.c
+++ b/src/libs/zbxsysinfo/linux/net.c
@@ -85,6 +85,7 @@ static int get_net_stat(const char *interface, struct net_stat_s *result)
}
}
}
+ fclose(f);
}
if(ret != SYSINFO_RET_OK)