commit b4f7fe4f4d4f2a1b47513ee6905928e6d8be1e7b from: Omar Polo date: Wed Sep 21 08:57:03 2022 UTC handle Gemini redirects too (3x) commit - 8857131d3f62c08a0b3d450582560322c36ea219 commit + b4f7fe4f4d4f2a1b47513ee6905928e6d8be1e7b blob - 107898868bf05ee176299f6fba32f140e52e0ab9 blob + 0715706983dee0bcf3a83eafd36fb16bf7bf8197 --- proxy.c +++ proxy.c @@ -688,6 +688,24 @@ proxy_read(struct bufferevent *bev, void *d) case '2': /* handled below */ break; + case '3': + /* XXX: do proper parsing */ + if (hdr[3] == '/' || strstr(&hdr[3], "//") == NULL) { + char *url; + + if (asprintf(&url, "%s%s", clt->clt_script_name, + &hdr[3]) == -1) + goto err; + + if (proxy_start_reply(clt, 302, url)) { + free(url); + goto err; + } + free(url); + fcgi_end_request(clt, 0); + goto err; + } + /* fallback */ default: if (proxy_start_reply(clt, 501, "text/html") == -1) goto err;