mirror of https://github.com/omar-polo/gmid.git
send host addresses to the server process
This commit is contained in:
parent
9fda962861
commit
a0a42860d2
26
config.c
26
config.c
|
@ -307,6 +307,7 @@ config_send(struct conf *conf)
|
||||||
|
|
||||||
TAILQ_FOREACH(h, &conf->hosts, vhosts) {
|
TAILQ_FOREACH(h, &conf->hosts, vhosts) {
|
||||||
struct vhost vcopy;
|
struct vhost vcopy;
|
||||||
|
struct address *addr, acopy;
|
||||||
|
|
||||||
memcpy(&vcopy, h, sizeof(vcopy));
|
memcpy(&vcopy, h, sizeof(vcopy));
|
||||||
vcopy.cert_path = NULL;
|
vcopy.cert_path = NULL;
|
||||||
|
@ -329,6 +330,21 @@ config_send(struct conf *conf)
|
||||||
return -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) {
|
TAILQ_FOREACH(l, &h->locations, locations) {
|
||||||
struct location lcopy;
|
struct location lcopy;
|
||||||
int fd = -1;
|
int fd = -1;
|
||||||
|
@ -598,6 +614,16 @@ config_recv(struct conf *conf, struct imsg *imsg)
|
||||||
h->domain);
|
h->domain);
|
||||||
break;
|
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:
|
case IMSG_RECONF_LOC:
|
||||||
if (h == NULL)
|
if (h == NULL)
|
||||||
fatalx("recv'd location without host");
|
fatalx("recv'd location without host");
|
||||||
|
|
1
gmid.h
1
gmid.h
|
@ -346,6 +346,7 @@ enum imsg_type {
|
||||||
IMSG_RECONF_CERT,
|
IMSG_RECONF_CERT,
|
||||||
IMSG_RECONF_KEY,
|
IMSG_RECONF_KEY,
|
||||||
IMSG_RECONF_OCSP,
|
IMSG_RECONF_OCSP,
|
||||||
|
IMSG_RECONF_HOST_ADDR,
|
||||||
IMSG_RECONF_LOC,
|
IMSG_RECONF_LOC,
|
||||||
IMSG_RECONF_ENV,
|
IMSG_RECONF_ENV,
|
||||||
IMSG_RECONF_ALIAS,
|
IMSG_RECONF_ALIAS,
|
||||||
|
|
1
server.c
1
server.c
|
@ -1518,6 +1518,7 @@ server_dispatch_parent(int fd, struct privsep_proc *p, struct imsg *imsg)
|
||||||
case IMSG_RECONF_CERT:
|
case IMSG_RECONF_CERT:
|
||||||
case IMSG_RECONF_KEY:
|
case IMSG_RECONF_KEY:
|
||||||
case IMSG_RECONF_OCSP:
|
case IMSG_RECONF_OCSP:
|
||||||
|
case IMSG_RECONF_HOST_ADDR:
|
||||||
case IMSG_RECONF_LOC:
|
case IMSG_RECONF_LOC:
|
||||||
case IMSG_RECONF_ENV:
|
case IMSG_RECONF_ENV:
|
||||||
case IMSG_RECONF_ALIAS:
|
case IMSG_RECONF_ALIAS:
|
||||||
|
|
Loading…
Reference in New Issue