Fix a bunch of warnings

This commit is contained in:
bjorn3
2025-04-06 16:16:44 +02:00
parent 3bf5930b3c
commit ef7154ee72
6 changed files with 42 additions and 49 deletions
+29 -34
View File
@@ -2,12 +2,12 @@ extern crate syscall;
use std::mem::MaybeUninit;
use std::ptr::addr_of_mut;
use std::{mem, process, slice, thread};
use std::sync::{Arc, Mutex};
use std::{mem, process, slice, thread};
use libredox::flag;
use libredox::{Fd, error::Result};
use redox_scheme::{Socket, SignalBehavior};
use libredox::{error::Result, Fd};
use redox_scheme::{SignalBehavior, Socket};
use redox_daemon::Daemon;
@@ -17,17 +17,14 @@ mod scheme;
extern "C" fn sigusr_handler(_sig: usize) {}
fn thread(scheme: Arc<Mutex<AudioScheme>>, pid: usize, mut hw_file: Fd) -> Result<()> {
fn thread(scheme: Arc<Mutex<AudioScheme>>, pid: usize, hw_file: Fd) -> Result<()> {
// Enter null namespace
libredox::call::setrens(0, 0)?;
loop {
let buffer = scheme.lock().unwrap().buffer();
let buffer_u8 = unsafe {
slice::from_raw_parts(
buffer.as_ptr() as *const u8,
mem::size_of_val(&buffer),
)
slice::from_raw_parts(buffer.as_ptr() as *const u8, mem::size_of_val(&buffer))
};
// Wake up the scheme thread
@@ -70,19 +67,21 @@ fn daemon(daemon: Daemon) -> Result<()> {
let mut pending = Vec::new();
loop {
loop {
match socket.next_request(SignalBehavior::Interrupt) {
Ok(Some(request)) => match request.handle_scheme_block_mut(&mut *scheme.lock().unwrap()) {
Ok(response) => {
socket.write_responses(&[response], SignalBehavior::Restart)?;
Ok(Some(request)) => {
match request.handle_scheme_block_mut(&mut *scheme.lock().unwrap()) {
Ok(response) => {
socket.write_responses(&[response], SignalBehavior::Restart)?;
}
Err(request) => pending.push(request),
}
Err(request) => pending.push(request),
},
Ok(None) => {},
Err(err) => match err.errno {
libredox::errno::EINTR => {},
_ => return Err(err),
}
Ok(None) => {}
Err(err) => match err.errno {
libredox::errno::EINTR => {}
_ => return Err(err),
},
}
let mut i = 0;
@@ -93,27 +92,23 @@ fn daemon(daemon: Daemon) -> Result<()> {
pending.remove(i);
socket.write_responses(&[response], SignalBehavior::Restart)?;
}
Err(_) => {
i += 1
}
Err(_) => i += 1,
}
}
}
}
fn main() {
if let Err(err) = Daemon::new(|x| {
match daemon(x) {
Ok(()) => {
process::exit(0);
},
Err(err) => {
eprintln!("audiod: {}", err);
process::exit(1);
}
let Err(err) = Daemon::new(|x| match daemon(x) {
Ok(()) => {
process::exit(0);
}
}) {
eprintln!("audiod: {}", err);
process::exit(1);
}
Err(err) => {
eprintln!("audiod: {}", err);
process::exit(1);
}
});
eprintln!("audiod: {}", err);
process::exit(1);
}
+2 -4
View File
@@ -17,7 +17,6 @@ enum Handle {
},
//TODO: move volume to audiohw:?
Volume {
flags: usize,
offset: usize,
}
}
@@ -75,7 +74,6 @@ impl SchemeBlockMut for AudioScheme {
buffer: VecDeque::new()
},
"volume" => Handle::Volume {
flags,
offset: 0,
},
_ => return Err(Error::new(ENOENT)),
@@ -95,7 +93,7 @@ impl SchemeBlockMut for AudioScheme {
//TODO: audio input?
Err(Error::new(EBADF))
},
Handle::Volume { flags: _, ref mut offset } => {
Handle::Volume { ref mut offset } => {
//TODO: should we allocate every time?
let string = format!("{}", self.volume);
let bytes = string.as_bytes();
@@ -136,7 +134,7 @@ impl SchemeBlockMut for AudioScheme {
Ok(Some(i))
}
},
Handle::Volume { flags: _, ref mut offset } => {
Handle::Volume { ref mut offset } => {
//TODO: support other offsets?
if *offset == 0 {
let value = str::from_utf8(buf)
+7 -5
View File
@@ -354,7 +354,7 @@ impl<'q> Dnsd<'q> {
*file = DnsFile::Timeout;
}
}
self.wakeup_fds(&fds_to_wakeup);
self.wakeup_fds(&fds_to_wakeup)?;
}
time.tv_sec += Dnsd::TIME_EVENT_TIMEOUT_S;
@@ -438,10 +438,10 @@ impl<'q> Dnsd<'q> {
*file = DnsFile::Failed;
}
}
self.wakeup_fds(&fds_to_fail);
self.wakeup_fds(&fds_to_fail)?;
}
Some(DnsParsingResult::WakeUpFiles(fds_to_wakeup)) => {
self.wakeup_fds(&fds_to_wakeup);
self.wakeup_fds(&fds_to_wakeup)?;
}
None => {}
}
@@ -453,7 +453,7 @@ impl<'q> Dnsd<'q> {
Ok(())
}
fn wakeup_fds(&mut self, fds_to_wakeup: &BTreeSet<usize>) {
fn wakeup_fds(&mut self, fds_to_wakeup: &BTreeSet<usize>) -> Result<()> {
for fd in fds_to_wakeup {
let Some(affected) = self.blocked_fds.remove(&fd) else {
continue;
@@ -474,9 +474,11 @@ impl<'q> Dnsd<'q> {
Response::new(res, op)
};
self.scheme_socket
.write_response(resp, SignalBehavior::Restart);
.write_response(resp, SignalBehavior::Restart)
.context("scheme write fail")?;
}
}
Ok(())
}
fn validate_domain(domain: &str) -> bool {
-2
View File
@@ -23,7 +23,6 @@ pub struct File {
pub atime: TimeSpec,
pub ctime: TimeSpec,
pub mtime: TimeSpec,
pub crtime: TimeSpec,
pub data: FileData,
}
@@ -65,7 +64,6 @@ impl Filesystem {
let cur_time = current_time();
File {
atime: cur_time,
crtime: cur_time,
ctime: cur_time,
mtime: cur_time,
-2
View File
@@ -182,7 +182,6 @@ impl SchemeSync for Scheme {
File {
atime: current_time,
crtime: current_time,
ctime: current_time,
mtime: current_time,
gid: ctx.gid,
@@ -203,7 +202,6 @@ impl SchemeSync for Scheme {
File {
atime: current_time,
crtime: current_time,
ctime: current_time,
mtime: current_time,
gid: ctx.gid,
+4 -2
View File
@@ -17,8 +17,8 @@ use redox_scheme::{RequestKind, SchemeMut, SignalBehavior, Socket, V2};
use syscall::data::Stat;
use syscall::flag::EventFlags;
use syscall::{
Error, Result, EBADF, EBADFD, EEXIST, EINVAL, ENOENT, EPERM, MODE_CHR, O_CLOEXEC, O_CREAT,
O_EXCL, O_RDONLY, O_RDWR, O_STAT, O_WRONLY,
Error, Result, EBADF, EBADFD, EEXIST, ENOENT, EPERM, MODE_CHR, O_CREAT, O_EXCL, O_RDONLY,
O_RDWR, O_WRONLY,
};
// Create an RNG Seed to create initial seed from the rdrand intel instruction
@@ -166,6 +166,8 @@ impl RandScheme {
#[test]
fn test_scheme_perms() {
use syscall::{O_CLOEXEC, O_STAT};
let mut scheme = RandScheme::new(File::open(".").unwrap());
scheme.prng_stat.st_mode = MODE_CHR | 0o200;
scheme.prng_stat.st_uid = 1;