mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-11-28 19:52:44 +00:00
Let the snmp_hostres module use utmpx.
Approved by: harti
This commit is contained in:
parent
4a3c1bd27f
commit
71713ba2e1
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=200953
@ -69,8 +69,8 @@ MAN= snmp_hostres.3
|
||||
DEFS= ${MOD}_tree.def
|
||||
BMIBS= BEGEMOT-HOSTRES-MIB.txt
|
||||
|
||||
DPADD= ${LIBKVM} ${LIBDEVINFO} ${LIBM} ${LIBGEOM} ${LIBMEMSTAT}
|
||||
LDADD= -lkvm -ldevinfo -lm -lgeom -lmemstat
|
||||
DPADD= ${LIBKVM} ${LIBDEVINFO} ${LIBM} ${LIBGEOM} ${LIBMEMSTAT} ${LIBULOG}
|
||||
LDADD= -lkvm -ldevinfo -lm -lgeom -lmemstat -lulog
|
||||
|
||||
.include <bsd.snmpmod.mk>
|
||||
|
||||
|
@ -41,15 +41,13 @@
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
#include <syslog.h>
|
||||
#include <utmp.h>
|
||||
#define _ULOG_POSIX_NAMES
|
||||
#include <ulog.h>
|
||||
|
||||
#include "hostres_snmp.h"
|
||||
#include "hostres_oid.h"
|
||||
#include "hostres_tree.h"
|
||||
|
||||
/* file pointer to keep an open instance of utmp */
|
||||
static FILE *utmp_fp;
|
||||
|
||||
/* boot timestamp in centi-seconds */
|
||||
static uint64_t kernel_boot;
|
||||
|
||||
@ -70,9 +68,6 @@ fini_scalars(void)
|
||||
{
|
||||
|
||||
free(boot_line);
|
||||
|
||||
if (utmp_fp != NULL)
|
||||
(void)fclose(utmp_fp);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -220,30 +215,15 @@ OS_getSystemInitialLoadParameters(u_char **params)
|
||||
static int
|
||||
OS_getSystemNumUsers(uint32_t *nu)
|
||||
{
|
||||
struct utmp utmp;
|
||||
static int first_time = 1;
|
||||
|
||||
if (utmp_fp == NULL) {
|
||||
if (!first_time)
|
||||
return (SNMP_ERR_GENERR);
|
||||
first_time = 0;
|
||||
if ((utmp_fp = fopen(_PATH_UTMP, "r")) == NULL) {
|
||||
syslog(LOG_ERR, "fopen(%s) failed: %m", _PATH_UTMP);
|
||||
return (SNMP_ERR_GENERR);
|
||||
}
|
||||
}
|
||||
|
||||
/* start with the begining of the utmp file */
|
||||
(void)rewind(utmp_fp);
|
||||
struct utmpx *utmp;
|
||||
|
||||
setutxent();
|
||||
*nu = 0;
|
||||
while (fread(&utmp, sizeof(utmp), 1, utmp_fp) == 1) {
|
||||
if (utmp.ut_name[0] != '\0' && utmp.ut_line[0] != '\0') {
|
||||
if (getpwnam(utmp.ut_name) == NULL)
|
||||
continue;
|
||||
while ((utmp = getutxent()) != NULL) {
|
||||
if (utmp->ut_type == USER_PROCESS)
|
||||
(*nu)++;
|
||||
}
|
||||
}
|
||||
endutxent();
|
||||
|
||||
return (SNMP_ERR_NOERROR);
|
||||
}
|
||||
|
@ -49,7 +49,6 @@
|
||||
#include <string.h>
|
||||
#include <syslog.h>
|
||||
#include <unistd.h>
|
||||
#include <utmp.h>
|
||||
|
||||
#include "hostres_snmp.h"
|
||||
#include "hostres_oid.h"
|
||||
|
Loading…
Reference in New Issue
Block a user