commit 4c2e6d4bca5eb6db472e0dc48025490dbbeab341 Author: therealchfkch <89243590+therealchfkch@users.noreply.github.com> Date: Sun Apr 24 15:32:08 2022 +0200 Initial Commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/target diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..30f2736 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "FreeID" +version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..56e2adf --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "FreeID" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/docs/database.drawio b/docs/database.drawio new file mode 100644 index 0000000..87c6211 --- /dev/null +++ b/docs/database.drawio @@ -0,0 +1 @@ +7Vxdc5s4FP01fuwOCPz1GNtJu9Mkk9mk0+6+KSCDWoE8Qo5Nf/1eQJhg2SlxILhTzXg86CKwuOcIzrloPHDm0fajwKvwhvuEDZDlbwfOYoDQdDyG7yyQqsBwWAQCQf0iZFeBe/qTqKClomvqk6TWUXLOJF3Vgx6PY+LJWgwLwTf1bkvO6r+6wgHRAvceZnr0K/VlWEQnaFzFPxEahOUv26NpsSfCZWd1JUmIfb55FnIuB85ccC6LrWg7JyzLXZmX4rirI3t3AxMklk0OmH38citTFyeffe8rI7f/pSP0wSnO8oTZWl3whefxdSwTNWiZlplINjRiOIbWbMljea/22NDGjAYxbHswFCIg8ESEpJDEC7VD8hVEvZAy/xqnfJ0NOJHY+1G2ZiEX9CecFjN1TtgtpOIDGtV63GdHQtiCqCAJ9Lkrs2DvhW7wttbxGidSBTzOGF4l9HF3GREWAY1nXEoeqU4qPXA5ZHs07/YOTZgFhEdEihS6qANchb+aABPV3FRsskcqFtaYhBSLFYOD3ZkrkGFD4fwKzF0N87vPgzkaXFj6Ny7Y8PdCowMkROYwCf6DzDnjgPsi5gU/KGN7oZIijCzlUYIkK+zROLjO+yzcKvKPyksW4nDskuUzKaS+T+IMXC6xxAWSGWwrTjMKw0CHM/hAeufWX8PBEAY+h7ZdteGTdRdyzmO4FkxzUAnQZEMyqjRjwPG5pdNC8QA43YgHZb/WaWDrPFDII+uXG0sqEhnjiBhetMyLIeqbF8M38IJhQ4tOaDGe9EyLA6zYx5jRHLsC41It2ScBHAFUjFSIPmSALz7YGuqOjrpzAGGGHwm74wmVlGfnF0XfPeT7Ate23GboTjoCd6zLwLUMHwDG2AjBtoTgeFRXgm5TJeh0BfvkNUoQCGFk4AlTf3zmMtDWSHBl7MC786B32eegY7Kv+Xd+NPWvBNw2DUHaJUjvAtDRa0WnEuRLLCkzDGmZIY1VZGcUmRqP0B26TkO52JVYtHUwiR+QUv5DSkIe8BizyyoKOV7HPvFVhqs+1zwHK8PqO5EyVfoeRCbPFL6MSvUPKRPpt+eNf7OTwVRTzUWp64tWWtPr2QBfVutwPXwtPNJAIYEPCchLALqHARSEYUmf6gNpHx7dw13eYMqMf2vLvzmo7t+aG7jOSvn2Cw7uWW2OREAEI9pPuCfbZ+7ekHFvZ0GE3u0bers6x74P91b9eWHI8UZy9G7dbCPMO4S39+o9OvBGPwSkbtfRIxFGAHYlAJ3+13Ig/bXcIQG4yuhgnvsnzH10xNSdjQAcGQF4DkToXwDq/v+E8mycPzIMPdqmR+8SEOmVAiMBW4O3fwk41dD8M4qz6Lcozpa1+/eFp800j36LNOtGaLeO6YoS5hsv1JYXsi2nboYae6Gp1RX6L3ihg8uZckoYMXzKcsYzd0XOq1yRWdnWCQt6t0Su/nLkBEtUPBsf0pVZ1N46RXq3RS46fqNA+xwwN4n2GdD/oiWnlcKJWfjYHUWarnzqjiIHiidm6eNZcWTYu+Q071i7xHfSUEx2VWBze6ngnEGBzWla+ZkcBvB9Kj+u0wc8Laa5FKK/TLPdb57dP3QaNManeCPfPj7QrP4rJN/37A9XnMv/AQ== \ No newline at end of file diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..7cc95a6 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,44 @@ +use std::io::prelude::*; +use std::net::TcpListener; +use std::net::TcpStream; + +fn main() { + let listener = TcpListener::bind("127.0.0.1:7878").unwrap(); + + for stream in listener.incoming() { + let stream = stream.unwrap(); + + handle_connection(stream); + } +} + +fn getit(slice: &[u8]) -> String { + let value = format!("{}{}{}{}{}{}", slice[8]-48, slice[9]-48, slice[10]-48, slice[11]-48, slice[12]-48, slice[13]-48); + value +} + +fn handle_connection(mut stream: TcpStream) { + let mut buffer = [0; 1024]; + + stream.read(&mut buffer).unwrap(); + + println!("Request: {}", String::from_utf8_lossy(&buffer[..])); + + let get_id = b"GET /id/"; + let get_auth = b"GET /auth/"; + let mut response = ""; + + if buffer.starts_with(get_id) { + response = "HTTP/1.1 200 OK\r\n\r\n"; + //req_id = buffer[8 .. 13]; + println!("ID Requested: {}", getit(&buffer)); + } + else if buffer.starts_with(get_auth) { + response = "HTTP/1.1 404 NOT FOUND\r\n\r\n"; + println!("Auth Requested"); + } + + + stream.write(response.as_bytes()).unwrap(); + stream.flush().unwrap(); +} \ No newline at end of file