diff options
| author | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2005-11-07 12:00:41 +0000 |
|---|---|---|
| committer | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2005-11-07 12:00:41 +0000 |
| commit | bacd714155a4829cb720c73474cfbf655fb5fe94 (patch) | |
| tree | e0156678c7d73b15f35e31d7db84ca7e00b9e34d /src/libs | |
| parent | c24747aacafa259dcfb65c3baeeda0a27311b7fc (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.c | 1 | ||||
| -rw-r--r-- | src/libs/zbxsysinfo/linux/kernel.c | 35 | ||||
| -rw-r--r-- | src/libs/zbxsysinfo/linux/net.c | 1 |
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) |
