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