Reame listener.rs to server.rs for clarity

This commit is contained in:
Barry Pederson
2024-11-03 10:38:40 -08:00
parent 7cd2ba3364
commit 00743fbe9c
3 changed files with 26 additions and 20 deletions
+6 -5
View File
@@ -1,13 +1,14 @@
mod handler;
mod listener;
pub mod options;
mod options;
mod repository;
mod server;
use crate::listener::Listener;
use crate::options::OPTIONS;
use crate::repository::PasswordDirectory;
use crate::server::Server;
fn main() -> std::io::Result<()> {
let mut listener = Listener::new(PasswordDirectory::new(&OPTIONS.password_dir))?;
listener.run()
let repository = PasswordDirectory::new(&OPTIONS.password_dir);
let mut server = Server::new(&OPTIONS.socket_name, repository)?;
server.run()
}
+1 -3
View File
@@ -1,5 +1,3 @@
use std::path::PathBuf;
use clap::Parser;
use std::sync::LazyLock;
@@ -11,7 +9,7 @@ pub struct Opt {
long = "socket-name",
default_value = "/tmp/saslauthd.sock"
)]
pub socket_name: PathBuf,
pub socket_name: String,
#[arg(short = 'p', long = "password-dir", default_value = "./test_passwords")]
pub password_dir: String,
+19 -12
View File
@@ -1,30 +1,37 @@
use crate::handler::Handler;
use crate::options::OPTIONS;
use crate::repository::PasswordDirectory;
use std::fs::{metadata, set_permissions};
use std::io::Error;
use std::os::unix::fs::PermissionsExt;
use std::os::unix::net::UnixListener;
use std::path::PathBuf;
use std::thread;
pub struct Listener {
pub struct Server {
listener: UnixListener,
handler: PasswordDirectory,
socket_name: PathBuf,
}
impl Listener {
pub fn new(handler: PasswordDirectory) -> Result<Listener, Error> {
if OPTIONS.socket_name.exists() {
std::fs::remove_file(&OPTIONS.socket_name)?;
impl Server {
pub fn new(socket_name: &str, handler: PasswordDirectory) -> Result<Server, Error> {
let socket_name = PathBuf::from(socket_name);
if socket_name.exists() {
std::fs::remove_file(&socket_name)?;
}
let listener = UnixListener::bind(&OPTIONS.socket_name)?;
let listener = UnixListener::bind(&socket_name)?;
let mut perms = metadata(&OPTIONS.socket_name)?.permissions();
let mut perms = metadata(&socket_name)?.permissions();
perms.set_mode(0o0777);
set_permissions(&OPTIONS.socket_name, perms)?;
set_permissions(&socket_name, perms)?;
Ok(Listener { handler, listener })
Ok(Server {
handler,
listener,
socket_name,
})
}
pub fn run(&mut self) -> Result<(), Error> {
@@ -46,9 +53,9 @@ impl Listener {
}
}
impl Drop for Listener {
impl Drop for Server {
fn drop(&mut self) {
let _result = std::fs::remove_file(&OPTIONS.socket_name);
let _result = std::fs::remove_file(&self.socket_name);
println!("Shutting down");
}
}