summaryrefslogtreecommitdiffstats
path: root/src/libs/zbxsysinfo/linux/cpu.c
diff options
context:
space:
mode:
authorsasha <sasha@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2008-04-28 10:02:58 +0000
committersasha <sasha@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2008-04-28 10:02:58 +0000
commit87785a8fbcd71409cca2413cdefb7d8ffe686e82 (patch)
treee0e701c5a80b1f29c98eca7869574a62689c9978 /src/libs/zbxsysinfo/linux/cpu.c
parent9dd65d8a2118c79626c2a1bea494a7c72150cb79 (diff)
downloadzabbix-87785a8fbcd71409cca2413cdefb7d8ffe686e82.tar.gz
zabbix-87785a8fbcd71409cca2413cdefb7d8ffe686e82.tar.xz
zabbix-87785a8fbcd71409cca2413cdefb7d8ffe686e82.zip
- [DEV-137] Misc bugs and improvements
git-svn-id: svn://svn.zabbix.com/trunk@5662 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src/libs/zbxsysinfo/linux/cpu.c')
-rw-r--r--src/libs/zbxsysinfo/linux/cpu.c121
1 files changed, 57 insertions, 64 deletions
diff --git a/src/libs/zbxsysinfo/linux/cpu.c b/src/libs/zbxsysinfo/linux/cpu.c
index 54858a92..d77d1e69 100644
--- a/src/libs/zbxsysinfo/linux/cpu.c
+++ b/src/libs/zbxsysinfo/linux/cpu.c
@@ -25,42 +25,35 @@
int SYSTEM_CPU_NUM(const char *cmd, const char *param, unsigned flags, AGENT_RESULT *result)
{
char mode[128];
- int sysinfo_name = -1;
+ int sysinfo_name;
long ncpu = 0;
-
- assert(result);
- init_result(result);
-
- if(num_param(param) > 1)
- {
- return SYSINFO_RET_FAIL;
- }
-
- if(get_param(param, 1, mode, sizeof(mode)) != 0)
- {
- mode[0] = '\0';
- }
- if(mode[0] == '\0')
- {
- /* default parameter */
+ assert(result);
+
+ init_result(result);
+
+ if (num_param(param) > 1)
+ return SYSINFO_RET_FAIL;
+
+ if (0 != get_param(param, 1, mode, sizeof(mode)))
+ *mode = '\0';
+
+ /* default parameter */
+ if (*mode == '\0')
zbx_snprintf(mode, sizeof(mode), "online");
- }
- if(0 == strncmp(mode, "online", sizeof(mode)))
- {
+ if (0 == strncmp(mode, "online", sizeof(mode)))
sysinfo_name = _SC_NPROCESSORS_ONLN;
- }
else if(0 == strncmp(mode, "max", sizeof(mode)))
- {
sysinfo_name = _SC_NPROCESSORS_CONF;
- }
+ else
+ return SYSINFO_RET_FAIL;
- if ( -1 == sysinfo_name || (-1 == (ncpu = sysconf(sysinfo_name)) && EINVAL == errno) )
+ if (-1 == (ncpu = sysconf(sysinfo_name)) && EINVAL == errno)
return SYSINFO_RET_FAIL;
SET_UI64_RESULT(result, ncpu);
-
+
return SYSINFO_RET_OK;
}
@@ -72,19 +65,19 @@ int SYSTEM_CPU_UTIL(const char *cmd, const char *param, unsigned flags, AGENT_RE
int cpu_num = 0;
- assert(result);
+ assert(result);
- init_result(result);
+ init_result(result);
- if(num_param(param) > 3)
- {
- return SYSINFO_RET_FAIL;
- }
+ if(num_param(param) > 3)
+ {
+ return SYSINFO_RET_FAIL;
+ }
- if(get_param(param, 1, cpuname, sizeof(cpuname)) != 0)
- {
+ if(get_param(param, 1, cpuname, sizeof(cpuname)) != 0)
+ {
cpuname[0] = '\0';
- }
+ }
if(cpuname[0] == '\0')
{
@@ -93,21 +86,21 @@ int SYSTEM_CPU_UTIL(const char *cmd, const char *param, unsigned flags, AGENT_RE
}
if(get_param(param, 2, type, sizeof(type)) != 0)
- {
- type[0] = '\0';
- }
- if(type[0] == '\0')
+ {
+ type[0] = '\0';
+ }
+ if(type[0] == '\0')
{
/* default parameter */
zbx_snprintf(type, sizeof(type), "user");
}
if(get_param(param, 3, mode, sizeof(mode)) != 0)
- {
- mode[0] = '\0';
- }
+ {
+ mode[0] = '\0';
+ }
- if(mode[0] == '\0')
+ if(mode[0] == '\0')
{
/* default parameter */
zbx_snprintf(mode, sizeof(mode), "avg1");
@@ -175,7 +168,7 @@ int SYSTEM_CPU_LOAD1(const char *cmd, const char *param, unsigned flags, AGENT_R
assert(result);
- init_result(result);
+ init_result(result);
if(getloadavg(load, 3))
{
@@ -194,7 +187,7 @@ int SYSTEM_CPU_LOAD5(const char *cmd, const char *param, unsigned flags, AGENT_R
assert(result);
- init_result(result);
+ init_result(result);
if(getloadavg(load, 3))
{
@@ -213,7 +206,7 @@ int SYSTEM_CPU_LOAD15(const char *cmd, const char *param, unsigned flags, AGENT_
assert(result);
- init_result(result);
+ init_result(result);
if(getloadavg(load, 3))
{
@@ -248,19 +241,19 @@ CPU_FNCLIST
char mode[MAX_STRING_LEN];
int i;
- assert(result);
+ assert(result);
- init_result(result);
+ init_result(result);
- if(num_param(param) > 2)
- {
- return SYSINFO_RET_FAIL;
- }
-
- if(get_param(param, 1, cpuname, sizeof(cpuname)) != 0)
- {
- return SYSINFO_RET_FAIL;
- }
+ if(num_param(param) > 2)
+ {
+ return SYSINFO_RET_FAIL;
+ }
+
+ if(get_param(param, 1, cpuname, sizeof(cpuname)) != 0)
+ {
+ return SYSINFO_RET_FAIL;
+ }
if(cpuname[0] == '\0')
{
/* default parameter */
@@ -272,10 +265,10 @@ CPU_FNCLIST
}
if(get_param(param, 2, mode, sizeof(mode)) != 0)
- {
- mode[0] = '\0';
- }
- if(mode[0] == '\0')
+ {
+ mode[0] = '\0';
+ }
+ if(mode[0] == '\0')
{
/* default parameter */
zbx_snprintf(mode, sizeof(mode), "avg1");
@@ -293,9 +286,9 @@ CPU_FNCLIST
int SYSTEM_CPU_SWITCHES(const char *cmd, const char *param, unsigned flags, AGENT_RESULT *result)
{
- assert(result);
+ assert(result);
- init_result(result);
+ init_result(result);
return SYSINFO_RET_FAIL;
}
@@ -310,9 +303,9 @@ int SYSTEM_CPU_INTR(const char *cmd, const char *param, unsigned flags, AGEN
FILE *f;
- assert(result);
+ assert(result);
- init_result(result);
+ init_result(result);
if(NULL != ( f = fopen("/proc/stat","r") ))
{