replaced client handling
This commit is contained in:
parent
d906bea781
commit
ed09e931c7
27
src/main.rs
27
src/main.rs
@ -58,33 +58,28 @@ fn parse_message(input: &str) -> MessageOuter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let message_inner = Message {
|
|
||||||
body,
|
|
||||||
from,
|
|
||||||
};
|
|
||||||
|
|
||||||
let message_outer = MessageOuter {
|
let message_outer = MessageOuter {
|
||||||
auth,
|
auth,
|
||||||
message: message_inner,
|
message: Message { body, from },
|
||||||
to,
|
to,
|
||||||
};
|
};
|
||||||
|
|
||||||
message_outer
|
message_outer
|
||||||
}
|
}
|
||||||
|
|
||||||
fn handle_client(mut stream: TcpStream) {
|
fn read_from(mut stream: TcpStream) {
|
||||||
let mut buffer = [0; 1024];
|
let mut buf = Vec::new();
|
||||||
while let Ok(bytes_read) = stream.read(&mut buffer) {
|
|
||||||
|
while let Ok(bytes_read) = stream.read_to_end(&mut buf) {
|
||||||
if bytes_read == 0 { break }
|
if bytes_read == 0 { break }
|
||||||
|
|
||||||
let message_outer = parse_message(
|
let message_outer = parse_message(
|
||||||
String::from_utf8_lossy(&buffer[..bytes_read]).as_ref()
|
String::from_utf8(buf.clone()).as_ref().unwrap()
|
||||||
);
|
);
|
||||||
|
|
||||||
let user = match message_outer.message.from {
|
let user = message_outer.message.from.unwrap_or_else(|| {
|
||||||
Some(user) => user,
|
format!("anon")
|
||||||
None => format!("anon"),
|
});
|
||||||
};
|
|
||||||
|
|
||||||
println!("{}: {}", user, message_outer.message.body);
|
println!("{}: {}", user, message_outer.message.body);
|
||||||
}
|
}
|
||||||
@ -100,7 +95,7 @@ fn main() {
|
|||||||
match stream {
|
match stream {
|
||||||
Ok(stream) => {
|
Ok(stream) => {
|
||||||
thread::spawn(move || {
|
thread::spawn(move || {
|
||||||
handle_client(stream);
|
read_from(stream);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
|
Loading…
Reference in New Issue
Block a user