diff --git a/src/lib.rs b/src/lib.rs index efc0d9f..26f85a2 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,3 +1,15 @@ +use std::io::{Read, Write}; + +use rustls::Stream; + pub mod tls; -pub fn request(gateway: &str) {} +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 resp = Vec::new(); + tls.read_to_end(&mut resp).unwrap(); + String::from_utf8_lossy(&resp).to_string() +} diff --git a/src/main.rs b/src/main.rs index 63337a4..bbdfdaf 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,16 +1,7 @@ -use std::io::{Read, Write}; - -use ghostnet_rs::tls; -use rustls::Stream; +use ghostnet_rs::request; fn main() { - let (mut conn, mut tcp) = tls::mask_tls("github.com").unwrap(); - let mut tls = Stream::new(&mut conn, &mut tcp); + let result = request("localhost", "github.com"); - tls.write_all("GET / HTTP/1.0\r\nHost: github.com\r\n\r\n".as_bytes()) - .unwrap(); - - let mut resp = Vec::new(); - tls.read_to_end(&mut resp).unwrap(); - println!("{}", String::from_utf8_lossy(&resp)); + println!("Result: {result}"); }