mirror of
https://github.com/uutils/coreutils.git
synced 2026-06-10 15:48:22 -07:00
Fix build and tests for uptime on OpenBSD (#9158)
* uptime: fix build errors on OpenBSD Signed-off-by: Laurent Cheylus <foxy@free.fr> * tests: fix error for uptime on OpenBSD Signed-off-by: Laurent Cheylus <foxy@free.fr> --------- Signed-off-by: Laurent Cheylus <foxy@free.fr>
This commit is contained in:
@@ -168,7 +168,7 @@ fn uptime_with_file(file_path: &OsString) -> UResult<()> {
|
||||
|
||||
#[cfg(target_os = "openbsd")]
|
||||
{
|
||||
let upsecs = get_uptime(None);
|
||||
let upsecs = get_uptime(None)?;
|
||||
if upsecs >= 0 {
|
||||
print_uptime(Some(upsecs))?;
|
||||
} else {
|
||||
|
||||
@@ -75,7 +75,7 @@ pub fn get_uptime(_boot_time: Option<time_t>) -> UResult<i64> {
|
||||
|
||||
Ok(uptime)
|
||||
} else {
|
||||
Err(UptimeError::SystemUptime)
|
||||
Err(UptimeError::SystemUptime)?
|
||||
}
|
||||
}
|
||||
|
||||
@@ -213,27 +213,23 @@ pub fn get_nusers() -> usize {
|
||||
pub fn get_nusers(file: &str) -> usize {
|
||||
use utmp_classic::{UtmpEntry, parse_from_path};
|
||||
|
||||
let mut nusers = 0;
|
||||
|
||||
let entries = match parse_from_path(file) {
|
||||
Some(e) => e,
|
||||
None => return 0,
|
||||
Ok(e) => e,
|
||||
Err(_) => return 0,
|
||||
};
|
||||
|
||||
for entry in entries {
|
||||
if let UtmpEntry::UTMP {
|
||||
line: _,
|
||||
user,
|
||||
host: _,
|
||||
time: _,
|
||||
} = entry
|
||||
{
|
||||
if !user.is_empty() {
|
||||
nusers += 1;
|
||||
}
|
||||
}
|
||||
if entries.is_empty() {
|
||||
return 0;
|
||||
}
|
||||
nusers
|
||||
|
||||
// Count entries that have a non-empty user field
|
||||
entries
|
||||
.iter()
|
||||
.filter_map(|entry| match entry {
|
||||
UtmpEntry::UTMP { user, .. } if !user.is_empty() => Some(()),
|
||||
_ => None,
|
||||
})
|
||||
.count()
|
||||
}
|
||||
|
||||
/// Get the number of users currently logged in
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
// spell-checker:ignore bincode serde utmp runlevel testusr testx
|
||||
#![allow(clippy::cast_possible_wrap, clippy::unreadable_literal)]
|
||||
|
||||
#[cfg(not(target_os = "openbsd"))]
|
||||
use uutests::at_and_ucmd;
|
||||
use uutests::util::TestScenario;
|
||||
use uutests::{new_ucmd, util_name};
|
||||
|
||||
Reference in New Issue
Block a user