Browse Source

Initial Commit

main
therealchfkch 4 years ago
commit
4c2e6d4bca
  1. 1
      .gitignore
  2. 7
      Cargo.lock
  3. 8
      Cargo.toml
  4. 1
      docs/database.drawio
  5. 44
      src/main.rs

1
.gitignore

@ -0,0 +1 @@
/target

7
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"

8
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]

1
docs/database.drawio

@ -0,0 +1 @@
<mxfile host="Electron" modified="2022-04-24T08:58:03.556Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/17.4.2 Chrome/100.0.4896.60 Electron/18.0.1 Safari/537.36" etag="Nh72OjZAdNXaSZuQ8xwz" version="17.4.2" type="device"><diagram id="j7urjbnQ_gkWgaC1MXle" name="Seite-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==</diagram></mxfile>

44
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();
}
Loading…
Cancel
Save