mirror of
https://github.com/Drop-OSS/libtailscale-drop.git
synced 2026-07-18 18:44:25 -04:00
44 lines
902 B
Rust
44 lines
902 B
Rust
use std::{
|
|
io::{self, Read, Write},
|
|
net::TcpStream,
|
|
thread,
|
|
};
|
|
|
|
use tsnet::{Network, ServerBuilder};
|
|
|
|
fn main() {
|
|
env_logger::init();
|
|
let ts = ServerBuilder::new()
|
|
.ephemeral()
|
|
.redirect_log()
|
|
.build()
|
|
.unwrap();
|
|
let ln = ts.listen(Network::Tcp, ":1999").unwrap();
|
|
|
|
for conn in ln {
|
|
match conn {
|
|
Ok(conn) => {
|
|
thread::spawn(move || {
|
|
handle_client(conn);
|
|
});
|
|
}
|
|
Err(err) => panic!("{err}"),
|
|
}
|
|
}
|
|
}
|
|
|
|
fn handle_client(mut stream: TcpStream) {
|
|
let mut buf = [0; 2048];
|
|
loop {
|
|
match stream.read(&mut buf) {
|
|
Ok(0) => {
|
|
break;
|
|
}
|
|
Ok(n) => {
|
|
io::stdout().write_all(&buf[0..n]).unwrap();
|
|
}
|
|
Err(err) => panic!("{err}"),
|
|
}
|
|
}
|
|
}
|