-- Leo's gemini proxy

-- Connecting to typed-hole.org:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini

commit 3cddbf577c6f802a49a5a8b60d74741bf06b5f62

Author: Julien Blanchard <julien@sideburns.eu>

Date: Thu Jan 2 12:23:13 2020 +0100


Handle gopher query params


diff --git a/Cargo.lock b/Cargo.lock

index 302fa4a..59d7f0c 100644

--- a/Cargo.lock

+++ b/Cargo.lock

@@ -136,7 +136,7 @@ dependencies = [


[[package]]

name = "castor"

-version = "0.1.0"

+version = "0.2.0"

dependencies = [

"ansi-parser 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",

"dirs 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)",

diff --git a/src/gopher/client.rs b/src/gopher/client.rs

index 5d2c12c..36b307d 100644

--- a/src/gopher/client.rs

+++ b/src/gopher/client.rs

@@ -11,12 +11,17 @@ pub fn get_data<T: Protocol>(url: T) -> Result<(Option<Vec<u8>>, Vec<u8>), Strin


match TcpStream::connect(&urlf) {

Ok(mut stream) => {

- let mut url = format!("{}\r\n", url.path());

+ let mut url = match url.query() {

+ Some(query) => format!("{}?{}\r\n", url.path(), query),

+ None => format!("{}\r\n", url.path())

+ };

+

let url = if url.starts_with("/0/") || url.starts_with("/1/") {

url.split_off(2)

} else {

url

};

+

let url = percent_decode(url.as_bytes()).decode_utf8().unwrap();

stream.write_all(url.as_bytes()).unwrap();

let mut res = vec![];



---

Served by Pollux Gemini Server.

-- Response ended

-- Page fetched on Sun May 19 07:04:54 2024