Commit Diff


commit - f774ad1ea8ac72413c4ef077458f4b6b72d5b630
commit + 979cc5fd460d4c73c66ec6db41cf193047783043
blob - 8b2ea541f796c433e641576d696a4a8170cc0639
blob + 89e5c2a155fb4b29b75b75c80d8d50b59dd2ab23
--- parse.y
+++ parse.y
@@ -189,9 +189,13 @@ proxy		: PROXY STRING {
 			free($2);
 
 			pr = p;
-			TAILQ_INSERT_TAIL(&conf->sc_proxies, p, pr_entry);
 		} '{' optnl proxyopts_l '}' {
 			/* check if duplicate */
+			if (proxy_match(conf, pr->pr_conf.host) != NULL)
+				yyerror("duplicate proxy `%s'",
+				    pr->pr_conf.host);
+
+			TAILQ_INSERT_TAIL(&conf->sc_proxies, pr, pr_entry);
 
 			if (*pr->pr_conf.proxy_addr == '\0')
 				yyerror("missing source in proxy block `%s'",