commit - 9fda962861db6c2322384e64fc737f25d4314d66
commit + a0a42860d214974f2706d2a47203af9bc884f512
blob - 61fec219e2b9e033732a8323b5994a6575bb41fd
blob + 5899f9eb3b260b49596daed011908e55a4c0c79b
--- config.c
+++ config.c
TAILQ_FOREACH(h, &conf->hosts, vhosts) {
struct vhost vcopy;
+ struct address *addr, acopy;
memcpy(&vcopy, h, sizeof(vcopy));
vcopy.cert_path = NULL;
if (config_open_send(ps, PROC_SERVER, IMSG_RECONF_OCSP,
h->ocsp_path) == -1)
return -1;
+ }
+
+ TAILQ_FOREACH(addr, &h->addrs, addrs) {
+ memcpy(&acopy, addr, sizeof(acopy));
+ memset(&acopy.addrs, 0, sizeof(acopy.addrs));
+
+ if (proc_compose(ps, PROC_SERVER,
+ IMSG_RECONF_HOST_ADDR, &acopy, sizeof(acopy))
+ == -1)
+ return -1;
+ }
+
+ if (proc_flush_imsg(ps, PROC_SERVER, -1) == -1) {
+ log_warn("%s: proc_fush_imsg", __func__);
+ return -1;
}
TAILQ_FOREACH(l, &h->locations, locations) {
if (load_file(imsg->fd, &h->ocsp, &h->ocsplen) == -1)
fatalx("failed to load ocsp for %s",
h->domain);
+ break;
+
+ case IMSG_RECONF_HOST_ADDR:
+ log_debug("receiving host addr");
+ if (h == NULL)
+ fatalx("recv'd host address withouth host");
+ IMSG_SIZE_CHECK(imsg, addr);
+ addr = xcalloc(1, sizeof(*addr));
+ memcpy(addr, imsg->data, datalen);
+ TAILQ_INSERT_TAIL(&h->addrs, addr, addrs);
break;
case IMSG_RECONF_LOC:
blob - 8947e68a144d2bc7174694d25f5ccd307ba7b198
blob + 04fee36be9ee706b841a3e6f8fa81e7144deb242
--- gmid.h
+++ gmid.h
IMSG_RECONF_CERT,
IMSG_RECONF_KEY,
IMSG_RECONF_OCSP,
+ IMSG_RECONF_HOST_ADDR,
IMSG_RECONF_LOC,
IMSG_RECONF_ENV,
IMSG_RECONF_ALIAS,
blob - 18e8c91350428e9f2187966fcc6e62397da4a3ca
blob + 30b67b88539f333766c01ab536aaa63251e9bb5d
--- server.c
+++ server.c
case IMSG_RECONF_CERT:
case IMSG_RECONF_KEY:
case IMSG_RECONF_OCSP:
+ case IMSG_RECONF_HOST_ADDR:
case IMSG_RECONF_LOC:
case IMSG_RECONF_ENV:
case IMSG_RECONF_ALIAS: