diff options
| author | hugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2005-11-02 15:24:20 +0000 |
|---|---|---|
| committer | hugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2005-11-02 15:24:20 +0000 |
| commit | 903be810bf1a9be08473c236b9dcdac9aff0ed13 (patch) | |
| tree | 6aa16c5a6144533d2a989c51d17e0972ca702bb5 /src/libs/zbxsysinfo/openbsd | |
| parent | ba42c9921478d0b54d52b5ac2cd8e7a90426e02d (diff) | |
| download | zabbix-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.c | 79 |
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 } |
