ok
This commit is contained in:
+3
-5
@@ -1,15 +1,13 @@
|
||||
use std::io::{Read, Write};
|
||||
|
||||
use rustls::Stream;
|
||||
|
||||
pub mod server;
|
||||
pub mod tls;
|
||||
|
||||
pub fn request(gateway: &str, addr: &str) -> String {
|
||||
// Send a request to the gateway and provide the IP address and request
|
||||
let (mut conn, mut tcp) = tls::mask_tls(gateway).unwrap();
|
||||
let mut tls = Stream::new(&mut conn, &mut tcp);
|
||||
tls.write_all(format!("ROUTE {addr}").as_bytes()).unwrap();
|
||||
let mut tls = rustls::Stream::new(&mut conn, &mut tcp);
|
||||
tls.write_all(format!("ROUTE {addr}\nGET / HTTP/1.1").as_bytes())
|
||||
.unwrap();
|
||||
let mut resp = Vec::new();
|
||||
tls.read_to_end(&mut resp).unwrap();
|
||||
String::from_utf8_lossy(&resp).to_string()
|
||||
|
||||
+10
-3
@@ -1,7 +1,14 @@
|
||||
fn main() {
|
||||
ghostnet_rs::server::run().unwrap();
|
||||
ghostnet_rs::server::run();
|
||||
// println!(
|
||||
// "Result: {}",
|
||||
// ghostnet_rs::request("0.0.0.0:3000", "github.com")
|
||||
// "{}",
|
||||
// ghostnet_rs::request("ghostnet-rs.onrender.com:443", "https://wikipedia.org")
|
||||
// );
|
||||
// println!(
|
||||
// "{}",
|
||||
// reqwest::blocking::get("https://ghostnet-rs.onrender.com/")
|
||||
// .unwrap()
|
||||
// .text()
|
||||
// .unwrap()
|
||||
// )
|
||||
}
|
||||
|
||||
+7
-8
@@ -6,7 +6,7 @@ use reqwest::Version;
|
||||
use reqwest::blocking::Client;
|
||||
use reqwest::header::{HeaderMap, HeaderName, HeaderValue};
|
||||
|
||||
pub fn run() -> reqwest::Result<()> {
|
||||
pub fn run() {
|
||||
let listener = TcpListener::bind(format!(
|
||||
"0.0.0.0:{}",
|
||||
std::env::var("PORT").unwrap_or_else(|_| "3000".into())
|
||||
@@ -29,12 +29,12 @@ pub fn run() -> reqwest::Result<()> {
|
||||
.1;
|
||||
let http = buf_str.split_once("\n").unwrap().1;
|
||||
stream
|
||||
.write_all(send_request(addr, http)?.as_bytes())
|
||||
.write_all(send_request(addr, http).as_bytes())
|
||||
.unwrap();
|
||||
stream.flush().unwrap();
|
||||
} else {
|
||||
stream
|
||||
.write_all(send_request("https://wikipedia.org", "GET / HTTP/1.1")?.as_bytes())
|
||||
.write_all(send_request("https://wikipedia.org", "GET / HTTP/1.1").as_bytes())
|
||||
.unwrap();
|
||||
stream.flush().unwrap();
|
||||
}
|
||||
@@ -42,7 +42,7 @@ pub fn run() -> reqwest::Result<()> {
|
||||
}
|
||||
}
|
||||
|
||||
fn send_request(url: &str, request: &str) -> reqwest::Result<String> {
|
||||
fn send_request(url: &str, request: &str) -> String {
|
||||
let client = Client::new();
|
||||
let mut lines = request.lines();
|
||||
|
||||
@@ -61,7 +61,6 @@ fn send_request(url: &str, request: &str) -> reqwest::Result<String> {
|
||||
HeaderName::from_str(key.trim()).unwrap(),
|
||||
HeaderValue::from_str(value.trim()).unwrap(),
|
||||
));
|
||||
// headers.insert(, );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -76,7 +75,7 @@ fn send_request(url: &str, request: &str) -> reqwest::Result<String> {
|
||||
}
|
||||
.headers(HeaderMap::from_iter(headers.into_iter()));
|
||||
|
||||
let resp = builder.send()?;
|
||||
let resp = builder.send().unwrap();
|
||||
|
||||
let mut http_string = String::new();
|
||||
|
||||
@@ -100,8 +99,8 @@ fn send_request(url: &str, request: &str) -> reqwest::Result<String> {
|
||||
|
||||
http_string.push_str("\r\n");
|
||||
|
||||
let body = resp.text()?;
|
||||
let body = resp.text().unwrap();
|
||||
http_string.push_str(&body);
|
||||
|
||||
Ok(http_string)
|
||||
http_string
|
||||
}
|
||||
|
||||
+5
-2
@@ -18,7 +18,10 @@ pub fn mask_tls<'a>(
|
||||
.with_no_client_auth();
|
||||
|
||||
let arc_cfg = Arc::new(config);
|
||||
let conn = ClientConnection::new(arc_cfg, addr.to_owned().try_into()?)?;
|
||||
let tcp = TcpStream::connect(addr.to_owned() + ":443")?;
|
||||
let conn = ClientConnection::new(
|
||||
arc_cfg,
|
||||
addr.split_once(":").unwrap().0.to_string().try_into()?,
|
||||
)?;
|
||||
let tcp = TcpStream::connect(addr)?;
|
||||
Ok((conn, tcp))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user