print date and time when connection is established
This commit is contained in:
parent
59ab02b472
commit
c7711a0408
1 changed files with 45 additions and 2 deletions
47
src/main.rs
47
src/main.rs
|
@ -5,7 +5,7 @@ use std::{
|
||||||
net::{TcpListener, TcpStream},
|
net::{TcpListener, TcpStream},
|
||||||
path::{Path, PathBuf},
|
path::{Path, PathBuf},
|
||||||
thread,
|
thread,
|
||||||
time::Duration,
|
time::{Duration, SystemTime},
|
||||||
};
|
};
|
||||||
|
|
||||||
mod http;
|
mod http;
|
||||||
|
@ -53,7 +53,7 @@ fn handle_connection(mut stream: TcpStream) {
|
||||||
let Ok(client_ip) = stream.peer_addr() else {
|
let Ok(client_ip) = stream.peer_addr() else {
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
println!("[{client_ip}] new connection");
|
println!("[{client_ip}] new connection at {}", formatted_time_now());
|
||||||
|
|
||||||
let mut buffer = Vec::with_capacity(2048);
|
let mut buffer = Vec::with_capacity(2048);
|
||||||
loop {
|
loop {
|
||||||
|
@ -281,3 +281,46 @@ fn format_size(bytes: u64) -> String {
|
||||||
format!("{:>5.1} GiB", bytes as f64 / (1024.0 * 1024.0 * 1024.0))
|
format!("{:>5.1} GiB", bytes as f64 / (1024.0 * 1024.0 * 1024.0))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn formatted_time_now() -> String {
|
||||||
|
let unix_time = SystemTime::now()
|
||||||
|
.duration_since(SystemTime::UNIX_EPOCH)
|
||||||
|
.unwrap()
|
||||||
|
.as_secs();
|
||||||
|
|
||||||
|
let second = unix_time % 60;
|
||||||
|
let minute = unix_time / 60 % 60;
|
||||||
|
let hour = unix_time / 3600 % 24;
|
||||||
|
|
||||||
|
let days_since_epoch = unix_time / (3600 * 24);
|
||||||
|
let years_since_epoch = (days_since_epoch * 400) / 146097;
|
||||||
|
// 365.2425 days per year
|
||||||
|
/*
|
||||||
|
days = years * 365 + years/4 + years/400 - years/100
|
||||||
|
d = y*365 + y/4 + y/400 - y/100
|
||||||
|
d = (365y*400)/400 + 100y/400 + y/400 - 4y/400
|
||||||
|
d*400 = (365y*400) + 100y + y - 4y
|
||||||
|
d*400 = 400*365*y + 97*y
|
||||||
|
d*400 = y* (400*365 + 97)
|
||||||
|
d*400 = y*146097
|
||||||
|
years = (days * 400) / 146097
|
||||||
|
*/
|
||||||
|
let year = years_since_epoch + 1970;
|
||||||
|
|
||||||
|
let is_leap_year = (year % 4 == 0) && !((year % 100 == 0) && !(year % 400 == 0));
|
||||||
|
let feb = if is_leap_year { 28 } else { 27 };
|
||||||
|
let month_lengths = [31, feb, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
|
||||||
|
|
||||||
|
let leap_days = years_since_epoch / 4;
|
||||||
|
let mut day = days_since_epoch - leap_days - years_since_epoch * 365;
|
||||||
|
let mut month = 0;
|
||||||
|
for i in 0..12 {
|
||||||
|
if day < month_lengths[i] {
|
||||||
|
month = i + 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
day -= month_lengths[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
format!("{year}-{month:02}-{day:02}_{hour:02}:{minute:02}:{second:02}")
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue