1
0
Fork 0

- [gemini] remove redirect loop when the meta was an absolute URI.

This commit is contained in:
cage 2022-07-15 10:39:24 +02:00
parent de980b44b7
commit d45388e4dc
1 changed files with 13 additions and 11 deletions

View File

@ -518,18 +518,20 @@
(defgeneric build-redirect-iri (meta iri-from))
(defmethod build-redirect-iri (meta (iri-from iri:iri))
(let* ((meta-url (ignore-errors (iri:iri-parse meta))))
(let* ((meta-url (ignore-errors (iri:iri-parse meta))))
(when meta-url
(let* ((meta-query (uri:query meta-url))
(meta-path (uri:path meta-url))
(meta-path-query (if meta-query
(strcat meta-path "?" meta-query)
meta-path))
(new-url (gemini-parser:absolutize-link meta-path-query
(uri:host iri-from)
(uri:port iri-from)
(uri:path iri-from))))
new-url))))
(if (absolute-gemini-url-p meta)
meta
(let* ((meta-query (uri:query meta-url))
(meta-path (uri:path meta-url))
(meta-path-query (if meta-query
(strcat meta-path "?" meta-query)
meta-path))
(new-url (gemini-parser:absolutize-link meta-path-query
(uri:host iri-from)
(uri:port iri-from)
(uri:path iri-from))))
new-url)))))
(defmethod build-redirect-iri (meta (iri-from string))
(build-redirect-iri meta (iri:iri-parse iri-from)))