mirror of
https://github.com/topjohnwu/Magisk.git
synced 2024-12-22 16:07:39 +00:00
Update time handling code
This commit is contained in:
parent
bd2651057d
commit
22d05ca399
@ -12,8 +12,9 @@ use num_traits::FromPrimitive;
|
|||||||
|
|
||||||
use base::ffi::LogLevel;
|
use base::ffi::LogLevel;
|
||||||
use base::libc::{
|
use base::libc::{
|
||||||
getpid, gettid, gettimeofday, localtime_r, pipe2, pthread_sigmask, sigaddset, sigset_t,
|
clock_gettime, getpid, gettid, localtime_r, pipe2, pthread_sigmask, sigaddset, sigset_t,
|
||||||
sigtimedwait, timespec, timeval, tm, O_CLOEXEC, PIPE_BUF, SIGPIPE, SIG_BLOCK, SIG_SETMASK,
|
sigtimedwait, timespec, tm, CLOCK_REALTIME, O_CLOEXEC, PIPE_BUF, SIGPIPE, SIG_BLOCK,
|
||||||
|
SIG_SETMASK,
|
||||||
};
|
};
|
||||||
use base::*;
|
use base::*;
|
||||||
|
|
||||||
@ -297,20 +298,23 @@ extern "C" fn logfile_writer(arg: *mut c_void) -> *mut c_void {
|
|||||||
|
|
||||||
// Note: the obvious better implementation is to use the rust chrono crate, however
|
// Note: the obvious better implementation is to use the rust chrono crate, however
|
||||||
// the crate cannot fetch the proper local timezone without pulling in a bunch of
|
// the crate cannot fetch the proper local timezone without pulling in a bunch of
|
||||||
// timezone handling code. To reduce final binary size, fallback to use libc.
|
// timezone handling code. To reduce binary size, fallback to use localtime_r in libc.
|
||||||
let mut aux_len: usize;
|
let mut aux_len: usize;
|
||||||
unsafe {
|
unsafe {
|
||||||
let mut tv: timeval = std::mem::zeroed();
|
let mut ts: timespec = std::mem::zeroed();
|
||||||
let mut tm: tm = std::mem::zeroed();
|
let mut tm: tm = std::mem::zeroed();
|
||||||
gettimeofday(&mut tv, null_mut());
|
if clock_gettime(CLOCK_REALTIME, &mut ts) < 0
|
||||||
localtime_r(&tv.tv_sec, &mut tm);
|
|| localtime_r(&ts.tv_sec, &mut tm) == null_mut()
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
aux_len = strftime(
|
aux_len = strftime(
|
||||||
aux.as_mut_ptr().cast(),
|
aux.as_mut_ptr().cast(),
|
||||||
aux.len(),
|
aux.len(),
|
||||||
str_ptr!("%m-%d %T"),
|
str_ptr!("%m-%d %T"),
|
||||||
&tm,
|
&tm,
|
||||||
) as usize;
|
);
|
||||||
let ms = tv.tv_usec / 1000;
|
let ms = ts.tv_nsec / 1000000;
|
||||||
aux_len += bfmt!(
|
aux_len += bfmt!(
|
||||||
&mut aux[aux_len..],
|
&mut aux[aux_len..],
|
||||||
".{:03} {:5} {:5} {} : ",
|
".{:03} {:5} {:5} {} : ",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user