Cactus/net/slp/
ip_logger.rs1use log::error;
4use std::path::Path;
5
6pub struct ClientIpLoggerInfo {
8 pub ip: String,
9}
10
11fn make_line(info: &ClientIpLoggerInfo) -> String {
13 let time: String = crate::time::get_time_iso().unwrap();
14 format!("{},{}\n", time, info.ip)
15}
16
17pub fn log_ip(info: ClientIpLoggerInfo) {
21 let path: &Path = Path::new(crate::consts::file_paths::LOGGED_IPS);
22 if !path.is_file() {
23 if let Err(e) = crate::fs_manager::utils::create_file(path, None) {
24 error!("Failed to log IP: failed to create {path:#?}: {e}");
25 return;
26 }
27 }
28
29 if !path.is_file() {
31 error!("Failed to log IP: {path:#?} does not exist");
32 return;
33 }
34
35 if let Err(e) = crate::fs_manager::utils::append_file(path, &make_line(&info)) {
37 error!("Failed to log IP: {e}");
38 }
39}