clean up repo a bit and fix #1
This commit is contained in:
parent
03a0cd1919
commit
fcbb47cfe5
4 changed files with 7 additions and 54 deletions
|
@ -1,9 +1,9 @@
|
|||
[package]
|
||||
name = "packeteer"
|
||||
description = "An attempt at a Rust library that can be used to assist in programmatically analysing, serving and handling received protocol packets."
|
||||
version = "0.5.1"
|
||||
version = "0.5.2"
|
||||
edition = "2021"
|
||||
authors = ["Celeste <colean@colean.cc>"]
|
||||
authors = ["abbieoverflight <abbieoverflight@colean.cc>"]
|
||||
license = "MPL-2.0"
|
||||
homepage = "https://git.colean.cc/threeoh6000/packeteer/"
|
||||
repository = "https://git.colean.cc/threeoh6000/packeteer/"
|
||||
|
|
25
README
25
README
|
@ -1,25 +0,0 @@
|
|||
Packeteer
|
||||
-------------
|
||||
Packeteer is a library that can handle structurally organising protocol packets like HTTP 1.x requests and responses as well as generating, structuring, unpacking and potentially more features depending on the protocol.
|
||||
|
||||
Supported protocols
|
||||
-----------------------
|
||||
* HTTP/1.x
|
||||
* Gemini
|
||||
* FTP
|
||||
* DNS
|
||||
|
||||
What Packeteer is not
|
||||
-------------------------
|
||||
* a TCP/UDP stream handling library
|
||||
* a server
|
||||
* a protocol client
|
||||
* the only way to do this, probably
|
||||
|
||||
A note on licensing
|
||||
-----------------------
|
||||
This library changed from the LGPLv3 to MPLv2 as a result of LGPL's requirements for freedom of source on static linking which rustc does.
|
||||
|
||||
I've chosen to use the MPL as it is a weaker but still copyleft license that allows you to statically link.
|
||||
|
||||
The MPL applies retroactively to all previous versions of this library and will be used for all future versions.
|
25
README.html
25
README.html
|
@ -1,25 +0,0 @@
|
|||
<h1>Packeteer</h1>
|
||||
<p>Packeteer is a library that can handle structurally organising protocol packets like HTTP 1.x requests and responses as well as generating, structuring, unpacking and potentially more features depending on the protocol.</p>
|
||||
|
||||
<h2>Supported protocols</h2>
|
||||
<ul>
|
||||
<li>HTTP/1.x</li>
|
||||
<li>Gemini</li>
|
||||
<li>FTP</li>
|
||||
<li>DNS</li>
|
||||
</ul>
|
||||
|
||||
<h2>What Packeteer is not</h2>
|
||||
<ul>
|
||||
<li>a TCP/UDP stream handling library</li>
|
||||
<li>a server</li>
|
||||
<li>a protocol client</li>
|
||||
<li>the only way to do this, probably</li>
|
||||
</ul>
|
||||
|
||||
<h2>A note on licensing</h2>
|
||||
<p>This library changed from the LGPLv3 to MPLv2 as a result of LGPL's requirements for freedom of source on static linking which rustc does.</p>
|
||||
|
||||
<p>I've chosen to use the MPL as it is a weaker but still copyleft license that allows you to statically link.</p>
|
||||
|
||||
<p>The MPL applies retroactively to all previous versions of this library and will be used for all future versions.</p>
|
|
@ -45,7 +45,7 @@ pub fn generate_response(code: i32, body: &str) -> Http1Response {
|
|||
}
|
||||
/// A function for converting HTTP/1.x request strings into Http1Request.
|
||||
/// Construction functions aim to be as transparent as possible so apart from turning it into a structure, the request stays relatively unchanged.
|
||||
pub fn construct_request(request: &str) -> Http1Request {
|
||||
pub fn construct_request(request: &str) -> Option<Http1Request> {
|
||||
let split = request.split("\r\n");
|
||||
let mut request = Http1Request { method: "".to_string(), location: wrap_url("https://example.com"), version: "".to_string(), headers: vec![], body: "".to_string() };
|
||||
let mut reachedbody = false;
|
||||
|
@ -64,6 +64,9 @@ pub fn construct_request(request: &str) -> Http1Request {
|
|||
} else if v == "" {
|
||||
reachedbody = true;
|
||||
} else {
|
||||
if request.version == "".to_string() {
|
||||
return None;
|
||||
}
|
||||
let split1: Vec<&str> = v.split(": ").collect();
|
||||
let header = generate_kvheader(split1[0], split1[1]);
|
||||
request.headers.push(header)
|
||||
|
@ -72,7 +75,7 @@ pub fn construct_request(request: &str) -> Http1Request {
|
|||
request.body = v.to_string();
|
||||
}
|
||||
}
|
||||
return request
|
||||
return Some(request)
|
||||
}
|
||||
/// A function for converting HTTP/1.x response strings into Http1Response.
|
||||
/// Construction functions aim to be as transparent as possible so apart from turning it into a structure, the response stays relatively unchanged.
|
||||
|
|
Loading…
Reference in a new issue