aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOmar Polo <op@omarpolo.com>2024-01-21 12:23:16 +0000
committerOmar Polo <op@omarpolo.com>2024-01-21 12:23:16 +0000
commitb03e976aa26d100ec1bf976dfdd005868395b490 (patch)
treea58e7f5dc66dc3f3f4f9a1178e34bc36d795440d
parent6bce8180d96c2e1076bd131572979aae54a2fa9f (diff)
convert to use imsg_get_fd()
since proc_forward_imsg() never forwards a file descriptor (it's never called actually) just use -1 there.
-rw-r--r--config.c40
-rw-r--r--logger.c5
-rw-r--r--proc.c4
3 files changed, 24 insertions, 25 deletions
diff --git a/config.c b/config.c
index 375d58d..438a88d 100644
--- a/config.c
+++ b/config.c
@@ -474,10 +474,11 @@ config_crypto_recv_kp(struct conf *conf, struct imsg *imsg)
static struct pki *pki;
uint8_t *d;
size_t len;
+ int fd;
/* XXX: check for duplicates */
- if (imsg->fd == -1)
+ if ((fd = imsg_get_fd(imsg)) == -1)
fatalx("no fd for imsg %d", imsg->hdr.type);
switch (imsg->hdr.type) {
@@ -486,7 +487,7 @@ config_crypto_recv_kp(struct conf *conf, struct imsg *imsg)
fatalx("imsg in wrong order; pki is not NULL");
if ((pki = calloc(1, sizeof(*pki))) == NULL)
fatal("calloc");
- if (load_file(imsg->fd, &d, &len) == -1)
+ if (load_file(fd, &d, &len) == -1)
fatalx("can't load file");
if ((pki->hash = ssl_pubkey_hash(d, len)) == NULL)
fatalx("failed to compute cert hash");
@@ -498,7 +499,7 @@ config_crypto_recv_kp(struct conf *conf, struct imsg *imsg)
if (pki == NULL)
fatalx("got key without cert beforehand %d",
imsg->hdr.type);
- if (load_file(imsg->fd, &d, &len) == -1)
+ if (load_file(fd, &d, &len) == -1)
fatalx("failed to load private key");
if ((pki->pkey = ssl_load_pkey(d, len)) == NULL)
fatalx("failed load private key");
@@ -530,6 +531,7 @@ config_recv(struct conf *conf, struct imsg *imsg)
struct address *addr;
uint8_t *d;
size_t len, datalen;
+ int fd;
datalen = IMSG_DATA_SIZE(imsg);
@@ -565,10 +567,10 @@ config_recv(struct conf *conf, struct imsg *imsg)
addr = xcalloc(1, sizeof(*addr));
IMSG_SIZE_CHECK(imsg, addr);
memcpy(addr, imsg->data, sizeof(*addr));
- if (imsg->fd == -1)
+ if ((fd = imsg_get_fd(imsg)) == -1)
fatalx("missing socket for IMSG_RECONF_SOCK");
addr->conf = conf;
- addr->sock = imsg->fd;
+ addr->sock = fd;
event_set(&addr->evsock, addr->sock, EV_READ|EV_PERSIST,
server_accept, addr);
if ((addr->ctx = tls_server()) == NULL)
@@ -605,9 +607,9 @@ config_recv(struct conf *conf, struct imsg *imsg)
fatalx("recv'd cert without host");
if (h->cert != NULL)
fatalx("cert already received");
- if (imsg->fd == -1)
+ if ((fd = imsg_get_fd(imsg)) == -1)
fatalx("no fd for IMSG_RECONF_CERT");
- if (load_file(imsg->fd, &h->cert, &h->certlen) == -1)
+ if (load_file(fd, &h->cert, &h->certlen) == -1)
fatalx("failed to load cert for %s",
h->domain);
break;
@@ -620,9 +622,9 @@ config_recv(struct conf *conf, struct imsg *imsg)
fatalx("recv'd key without host");
if (h->key != NULL)
fatalx("key already received");
- if (imsg->fd == -1)
+ if ((fd = imsg_get_fd(imsg)) == -1)
fatalx("no fd for IMSG_RECONF_KEY");
- if (load_file(imsg->fd, &h->key, &h->keylen) == -1)
+ if (load_file(fd, &h->key, &h->keylen) == -1)
fatalx("failed to load key for %s",
h->domain);
break;
@@ -633,9 +635,9 @@ config_recv(struct conf *conf, struct imsg *imsg)
fatalx("recv'd ocsp without host");
if (h->ocsp != NULL)
fatalx("ocsp already received");
- if (imsg->fd == -1)
+ if ((fd = imsg_get_fd(imsg)) == -1)
fatalx("no fd for IMSG_RECONF_OCSP");
- if (load_file(imsg->fd, &h->ocsp, &h->ocsplen) == -1)
+ if (load_file(fd, &h->ocsp, &h->ocsplen) == -1)
fatalx("failed to load ocsp for %s",
h->domain);
break;
@@ -658,8 +660,8 @@ config_recv(struct conf *conf, struct imsg *imsg)
memcpy(loc, imsg->data, datalen);
TAILQ_INIT(&loc->params);
- if (imsg->fd != -1) {
- if (load_file(imsg->fd, &d, &len) == -1)
+ if ((fd = imsg_get_fd(imsg)) != -1) {
+ if (load_file(fd, &d, &len) == -1)
fatal("load_file");
loc->reqca = load_ca(d, len);
if (loc->reqca == NULL)
@@ -697,8 +699,8 @@ config_recv(struct conf *conf, struct imsg *imsg)
proxy = xcalloc(1, sizeof(*proxy));
memcpy(proxy, imsg->data, datalen);
- if (imsg->fd != -1) {
- if (load_file(imsg->fd, &d, &len) == -1)
+ if ((fd = imsg_get_fd(imsg)) != -1) {
+ if (load_file(fd, &d, &len) == -1)
fatal("load_file");
proxy->reqca = load_ca(d, len);
if (proxy->reqca == NULL)
@@ -716,9 +718,9 @@ config_recv(struct conf *conf, struct imsg *imsg)
fatalx("recv'd proxy cert without proxy");
if (p->cert != NULL)
fatalx("proxy cert already received");
- if (imsg->fd == -1)
+ if ((fd = imsg_get_fd(imsg)) == -1)
fatalx("no fd for IMSG_RECONF_PROXY_CERT");
- if (load_file(imsg->fd, &p->cert, &p->certlen) == -1)
+ if (load_file(fd, &p->cert, &p->certlen) == -1)
fatalx("failed to load cert for proxy %s of %s",
p->host, h->domain);
break;
@@ -729,9 +731,9 @@ config_recv(struct conf *conf, struct imsg *imsg)
fatalx("recv'd proxy key without proxy");
if (p->key != NULL)
fatalx("proxy key already received");
- if (imsg->fd == -1)
+ if ((fd = imsg_get_fd(imsg)) == -1)
fatalx("no fd for IMSG_RECONF_PROXY_KEY");
- if (load_file(imsg->fd, &p->key, &p->keylen) == -1)
+ if (load_file(fd, &p->key, &p->keylen) == -1)
fatalx("failed to load key for proxy %s of %s",
p->host, h->domain);
break;
diff --git a/logger.c b/logger.c
index 36ccaa3..799b94e 100644
--- a/logger.c
+++ b/logger.c
@@ -93,10 +93,7 @@ logger_dispatch_parent(int fd, struct privsep_proc *p, struct imsg *imsg)
case IMSG_LOG_ACCESS:
if (logfd != -1)
close(logfd);
- logfd = -1;
-
- if (imsg->fd != -1)
- logfd = imsg->fd;
+ logfd = imsg_get_fd(imsg);
break;
default:
return -1;
diff --git a/proc.c b/proc.c
index def7b8c..50cabc7 100644
--- a/proc.c
+++ b/proc.c
@@ -673,7 +673,7 @@ proc_dispatch(int fd, short event, void *arg)
case IMSG_CTL_PROCFD:
IMSG_SIZE_CHECK(&imsg, &pf);
memcpy(&pf, imsg.data, sizeof(pf));
- proc_accept(ps, imsg.fd, pf.pf_procid,
+ proc_accept(ps, imsg_get_fd(&imsg), pf.pf_procid,
pf.pf_instance);
break;
default:
@@ -804,7 +804,7 @@ proc_forward_imsg(struct privsep *ps, struct imsg *imsg,
enum privsep_procid id, int n)
{
return (proc_compose_imsg(ps, id, n, imsg->hdr.type,
- imsg->hdr.peerid, imsg->fd, imsg->data, IMSG_DATA_SIZE(imsg)));
+ imsg->hdr.peerid, -1, imsg->data, IMSG_DATA_SIZE(imsg)));
}
struct imsgbuf *