summaryrefslogtreecommitdiffstats
path: root/src/libs/zbxsysinfo/openbsd
diff options
context:
space:
mode:
authorhugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2005-11-02 15:24:20 +0000
committerhugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2005-11-02 15:24:20 +0000
commit903be810bf1a9be08473c236b9dcdac9aff0ed13 (patch)
tree6aa16c5a6144533d2a989c51d17e0972ca702bb5 /src/libs/zbxsysinfo/openbsd
parentba42c9921478d0b54d52b5ac2cd8e7a90426e02d (diff)
downloadzabbix-903be810bf1a9be08473c236b9dcdac9aff0ed13.tar.gz
zabbix-903be810bf1a9be08473c236b9dcdac9aff0ed13.tar.xz
zabbix-903be810bf1a9be08473c236b9dcdac9aff0ed13.zip
Support of sys.uptime under OpenBSD.
git-svn-id: svn://svn.zabbix.com/trunk@2252 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src/libs/zbxsysinfo/openbsd')
-rw-r--r--src/libs/zbxsysinfo/openbsd/uptime.c79
1 files changed, 4 insertions, 75 deletions
diff --git a/src/libs/zbxsysinfo/openbsd/uptime.c b/src/libs/zbxsysinfo/openbsd/uptime.c
index a38b2bd7..abb674b0 100644
--- a/src/libs/zbxsysinfo/openbsd/uptime.c
+++ b/src/libs/zbxsysinfo/openbsd/uptime.c
@@ -24,32 +24,13 @@
int SYSTEM_UPTIME(const char *cmd, const char *param, unsigned flags, AGENT_RESULT *result)
{
-#ifdef HAVE_SYSINFO_UPTIME
- struct sysinfo info;
-
- assert(result);
-
- clean_result(result);
-
- if( 0 == sysinfo(&info))
- {
- result->type |= AR_DOUBLE;
- result->dbl = (double)info.uptime;
- return SYSINFO_RET_OK;
- }
- else
- {
- return SYSINFO_RET_FAIL;
- }
-#else
-#ifdef HAVE_FUNCTION_SYSCTL_KERN_BOOTTIME
- int mib[2],len;
+ int mib[2];
+ size_t len;
struct timeval uptime;
int now;
assert(result);
-
- clean_result(result);
+ clean_result(result);
mib[0]=CTL_KERN;
mib[1]=KERN_BOOTTIME;
@@ -59,64 +40,12 @@ int SYSTEM_UPTIME(const char *cmd, const char *param, unsigned flags, AGENT_RESU
if(sysctl(mib,2,&uptime,(size_t *)&len,NULL,0) != 0)
{
return SYSINFO_RET_FAIL;
-/* printf("Errno [%m]\n");*/
}
now=time(NULL);
+
result->type |= AR_DOUBLE;
result->dbl = (double)(now-uptime.tv_sec);
- return SYSINFO_RET_OK;
-#else
-/* Solaris */
-#ifdef HAVE_KSTAT_H
- kstat_ctl_t *kc;
- kstat_t *kp;
- kstat_named_t *kn;
-
- long hz;
- long secs;
-
- assert(result);
- clean_result(result);
-
- hz = sysconf(_SC_CLK_TCK);
-
- /* open kstat */
- kc = kstat_open();
- if (0 == kc)
- {
- return SYSINFO_RET_FAIL;
- }
-
- /* read uptime counter */
- kp = kstat_lookup(kc, "unix", 0, "system_misc");
- if (0 == kp)
- {
- kstat_close(kc);
- return SYSINFO_RET_FAIL;
- }
-
- if(-1 == kstat_read(kc, kp, 0))
- {
- kstat_close(kc);
- return SYSINFO_RET_FAIL;
- }
- kn = (kstat_named_t*)kstat_data_lookup(kp, "clk_intr");
- secs = kn->value.ul / hz;
-
- /* close kstat */
- kstat_close(kc);
- result->type |= AR_DOUBLE;
- result->dbl = (double)secs;
return SYSINFO_RET_OK;
-#else
- assert(result);
-
- clean_result(result);
-
- return SYSINFO_RET_FAIL;
-#endif
-#endif
-#endif
}