Reame listener.rs to server.rs for clarity
This commit is contained in:
+6
-5
@@ -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,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,
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user