commit 52c92ef6803ae5bcf1eca0447b07da2f8ca675fb from: Omar Polo date: Thu Dec 09 20:59:05 2021 UTC relax the "wont proxy request" check: don't check the port number Don't refuse to serve the request if the port number doesn't match the one we're listening on, as initially suggested by Allen Sobot. Complex setup may have a gmid instance reachable from multiple ports and the meaning of the check in the first places was to avoid tricking clients into thinking that we're serving for those domains: the port number is way less important than the schema or domain name. In the long run, the best way would probably to add a `listen on' keyword for the servers blocks, just like OpenBSD' httpd, but gmid can't listen on multiple ports/interfaces yet commit - 34c4ca6ebc5e71f50f5f8d52113b47b26573bfa1 commit + 52c92ef6803ae5bcf1eca0447b07da2f8ca675fb blob - 25d1a7335de0f4637d16fb3f6b7a88bbed831a7e blob + 9db8eef93d1b62d42a9d9ad917c19c7b71038eaa --- ChangeLog +++ ChangeLog @@ -1,5 +1,6 @@ 2021-12-09 Omar Polo + * server.c (client_read): don't check if the port in the request is the same we're listening on. Suggested by Allen Sobot, thanks! * configure: add --prefix=... long argument. 2021-11-16 Omar Polo blob - 88fcc70c80863b3e541bfda8e38e619ef431af1c blob + 151ede75cf8dbc536eff07dea3698e36e5b93344 --- server.c +++ server.c @@ -963,8 +963,8 @@ client_read(struct bufferevent *bev, void *d) return; } - if (c->iri.port_no != conf.port || - strcmp(c->iri.schema, "gemini") || + /* ignore the port number */ + if (strcmp(c->iri.schema, "gemini") || strcmp(decoded, c->domain)) { start_reply(c, PROXY_REFUSED, "won't proxy request"); return;