summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock7
-rw-r--r--src/main.rs23
2 files changed, 29 insertions, 1 deletions
diff --git a/Cargo.lock b/Cargo.lock
new file mode 100644
index 0000000..ba61b5b
--- /dev/null
+++ b/Cargo.lock
@@ -0,0 +1,7 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 4
+
+[[package]]
+name = "sts"
+version = "0.1.0"
diff --git a/src/main.rs b/src/main.rs
index e7a11a9..c42cc8e 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,3 +1,24 @@
+use std::io::BufReader;
+use std::io::prelude::*;
+use std::net::TcpListener;
+use std::net::TcpStream;
+
fn main() {
- println!("Hello, world!");
+ let listener = TcpListener::bind("127.0.0.1:7878").unwrap();
+
+ for stream in listener.incoming() {
+ let stream = stream.unwrap();
+ handle_connection(stream);
+ }
+}
+
+fn handle_connection(stream: TcpStream) {
+ let buf_reader = BufReader::new(&stream);
+ let http_request: Vec<_> = buf_reader
+ .lines()
+ .map(|result| result.unwrap())
+ .take_while(|line| !line.is_empty())
+ .collect();
+
+ println!("Request: {http_request:#?}");
}