Commit Diff


commit - a28d3461daa190bf043aac55bd926a5c2a4a142c
commit + f774ad1ea8ac72413c4ef077458f4b6b72d5b630
blob - 078319a04b3c234c489053e08cad7613ed2d79f3
blob + a38a60da468bf5ad2865b1c79aad657f6004560a
--- galileo.h
+++ galileo.h
@@ -193,10 +193,11 @@ int	 cmdline_symset(char *);
 extern volatile int proxy_inflight;
 extern uint32_t proxy_fcg_id;
 
-void	 proxy(struct privsep *, struct privsep_proc *);
-void	 proxy_purge(struct proxy *);
-int	 proxy_start_request(struct galileo *, struct client *);
-void	 proxy_client_free(struct client *);
+void			 proxy(struct privsep *, struct privsep_proc *);
+void			 proxy_purge(struct proxy *);
+struct proxy_config	*proxy_match(struct galileo *, const char *);
+int			 proxy_start_request(struct galileo *, struct client *);
+void			 proxy_client_free(struct client *);
 
 SPLAY_PROTOTYPE(fcgi_tree, fcgi, fcg_nodes, fcgi_cmp);
 SPLAY_PROTOTYPE(client_tree, client, clt_nodes, fcgi_client_cmp);
blob - baec053dc13ea92e5fec6770f8da24d9247952a9
blob + 0df1ed9f548dcc1db5f6032cd82aa4a9bae76433
--- proxy.c
+++ proxy.c
@@ -334,16 +334,16 @@ proxy_translate_gemtext(struct client *clt)
 	}
 }
 
-static struct proxy_config *
-proxy_match(struct galileo *env, struct client *clt)
+struct proxy_config *
+proxy_match(struct galileo *env, const char *name)
 {
 	struct proxy		*pr;
 
-	if (clt->clt_server_name == NULL)
+	if (name == NULL)
 		return NULL;
 
 	TAILQ_FOREACH(pr, &env->sc_proxies, pr_entry) {
-		if (!strcmp(clt->clt_server_name, pr->pr_conf.host))
+		if (!strcmp(name, pr->pr_conf.host))
 			return &pr->pr_conf;
 	}
 
@@ -358,7 +358,7 @@ proxy_start_request(struct galileo *env, struct client
 	int			 r;
 	char			*url;
 
-	if ((clt->clt_pc = proxy_match(env, clt)) == NULL) {
+	if ((clt->clt_pc = proxy_match(env, clt->clt_server_name)) == NULL) {
 		if (proxy_start_reply(clt, 501, "text/html") == -1)
 			return (-1);
 		if (tp_error(clt->clt_tp, -1, "unknown server") == -1)