aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main.rs12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/main.rs b/src/main.rs
index 20ceccd..464716f 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,5 +1,8 @@
#![allow(unused_imports)]
-use std::{io::Write, net::TcpListener};
+use std::{
+ io::{Read, Write},
+ net::TcpListener,
+};
fn main() {
let listener = TcpListener::bind("127.0.0.1:6379").unwrap();
@@ -7,7 +10,12 @@ fn main() {
for stream in listener.incoming() {
match stream {
Ok(mut stream) => {
- stream.write_all(b"+PONG\r\n").unwrap();
+ let mut buf = [0; 128];
+ stream.read(&mut buf).unwrap();
+ let request = str::from_utf8(&buf).unwrap();
+ for _ in 0..request.matches("PING").count() {
+ stream.write_all(b"+PONG\r\n").unwrap();
+ }
}
Err(e) => {
println!("error: {}", e);