update redirection handler (ggemini api upgrade)

This commit is contained in:
yggverse 2025-03-25 03:08:35 +02:00
parent 22d8898917
commit 37efb30729

View file

@ -1,6 +1,6 @@
use super::{Feature, Page}; use super::{Feature, Page};
use ggemini::client::connection::response::{ use ggemini::client::connection::response::{
Certificate, Failure, Input, Redirect, Success, Failure, Input, Redirect, Success,
failure::{Permanent, Temporary}, failure::{Permanent, Temporary},
}; };
use ggemini::{ use ggemini::{
@ -518,7 +518,7 @@ fn handle(
}, },
// https://geminiprotocol.net/docs/protocol-specification.gmi#status-30-temporary-redirection // https://geminiprotocol.net/docs/protocol-specification.gmi#status-30-temporary-redirection
// https://geminiprotocol.net/docs/protocol-specification.gmi#status-31-permanent-redirection // https://geminiprotocol.net/docs/protocol-specification.gmi#status-31-permanent-redirection
Response::Redirect(redirect) => match redirect.to_uri(&uri) { Response::Redirect(r) => match r.uri(&uri) {
Ok(target) => { Ok(target) => {
// Increase client redirection counter // Increase client redirection counter
let total = redirects.take() + 1; let total = redirects.take() + 1;
@ -558,7 +558,7 @@ fn handle(
update_page_info(&page, EVENT_COMPLETED); update_page_info(&page, EVENT_COMPLETED);
} else { } else {
let t = target.to_string(); let t = target.to_string();
if matches!(redirect, Redirect::Permanent { .. }) { if matches!(r, Redirect::Permanent { .. }) {
page.navigation.set_request(&t); page.navigation.set_request(&t);
} }
redirects.replace(total); redirects.replace(total);