firefox communication
This commit is contained in:
parent
80fabcde47
commit
40ccfa01d6
3 changed files with 82 additions and 25 deletions
39
src/main.rs
39
src/main.rs
|
|
@ -5,34 +5,49 @@ mod shared_enums;
|
|||
use std::{
|
||||
io::{BufReader, Write},
|
||||
net::TcpListener,
|
||||
time::Duration,
|
||||
};
|
||||
|
||||
use crate::{
|
||||
request::ServerPath,
|
||||
response::{Response, ResponseCode, ResponseHeader},
|
||||
shared_enums::Content,
|
||||
shared_enums::{Content, ContentType},
|
||||
};
|
||||
|
||||
fn main() -> std::io::Result<()> {
|
||||
let listener = TcpListener::bind("127.0.0.1:8080")?;
|
||||
for incoming_stream in listener.incoming() {
|
||||
let stream = incoming_stream?;
|
||||
let mut stream = incoming_stream?;
|
||||
stream.set_read_timeout(Some(Duration::from_millis(500)))?;
|
||||
|
||||
let reader = BufReader::new(&stream);
|
||||
loop {
|
||||
let reader = BufReader::new(&stream);
|
||||
let req = match request::Request::from_bufreader(reader) {
|
||||
Ok(r) => r,
|
||||
Err(_) => break,
|
||||
};
|
||||
|
||||
let req = request::Request::from_bufreader(reader)?;
|
||||
println!("{req:?}");
|
||||
|
||||
println!("{req:?}");
|
||||
let response = match req.path.path.to_string().as_str(){
|
||||
"css.css" => Response::new().with_code(ResponseCode::Ok).with_data(b"body{background-color: #000000;}".to_vec()).with_header(ResponseHeader::ContentType(Content::new(ContentType::Text(shared_enums::TextType::Css)))),
|
||||
|
||||
let mut writer = stream;
|
||||
|
||||
let response = Response::new()
|
||||
_ => Response::new()
|
||||
.with_code(ResponseCode::Ok)
|
||||
.with_data(b"<!doctype html><html lang=\"en\"><head><meta charset=\"UTF-8\"/><title>Hello World!</title></head><body><h1>Ahojky</h1><p>Jou jou jou</p></body></html>".to_vec())
|
||||
.with_header(ResponseHeader::ContentType(Content::html_utf8()));
|
||||
.with_data(b"<!doctype html><html lang=\"en\"><head><link rel=\"stylesheet\" href=\"css.css\"><meta charset=\"UTF-8\"/><title>Hello World!</title></head><body><h1>Ahojky</h1><p>Jou jou jou</p></body></html>".to_vec())
|
||||
.with_header(ResponseHeader::ContentType(Content::html_utf8())),
|
||||
};
|
||||
|
||||
response.respond(&mut writer)?;
|
||||
response.respond(&mut stream)?;
|
||||
|
||||
writer.flush()?;
|
||||
stream.flush()?;
|
||||
|
||||
if req.headers.contains(&request::RequestHeader::Connection(
|
||||
request::Connection::Close,
|
||||
)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue