commit - 0c9dbe77378362ddd333790c3b291fd5b8e940ed
commit + e64b43bec6df27f7e951b1c8878d1898928966b2
blob - eaa7c2cbe1787c2069950b19999449c2adbe89e4
blob + 6c3d538ed4e09c5b81ac4bf4e384ded17b27ee87
--- parse.y
+++ parse.y
-/* $OpenBSD: parse.y,v 1.261 2026/03/03 19:51:41 rsadowski Exp $ */
+/* $OpenBSD: parse.y,v 1.262 2026/04/06 09:14:54 kirill Exp $ */
/*
* Copyright (c) 2007 - 2014 Reyk Floeter <reyk@openbsd.org>
relay_inherit(struct relay *ra, struct relay *rb)
{
struct relay_config rc;
+ struct keyname *name;
struct relay_table *rta, *rtb;
bcopy(&rb->rl_conf, &rc, sizeof(rc));
goto err;
}
- if (relay_load_certfiles(conf, rb, NULL) == -1) {
+ if (TAILQ_EMPTY(&rb->rl_proto->tlscerts) &&
+ relay_load_certfiles(conf, rb, NULL) == -1) {
yyerror("cannot load certificates for relay %s",
rb->rl_conf.name);
goto err;
}
+ TAILQ_FOREACH(name, &rb->rl_proto->tlscerts, entry) {
+ if (relay_load_certfiles(conf, rb, name->name) == -1) {
+ yyerror("cannot load keypair %s for relay %s",
+ name->name, rb->rl_conf.name);
+ goto err;
+ }
+ }
TAILQ_FOREACH(rta, &ra->rl_tables, rlt_entry) {
if ((rtb = calloc(1, sizeof(*rtb))) == NULL) {