From: Claudio Jeker Subject: relayd convert to imsg_get_fd() To: tech@openbsd.org Date: Wed, 17 Jan 2024 09:50:11 +0100 Here is the imsg_get_fd change for relayd. Very similar to other reykd's. -- :wq Claudio Index: agentx_control.c =================================================================== RCS file: /cvs/src/usr.sbin/relayd/agentx_control.c,v diff -u -p -r1.6 agentx_control.c --- agentx_control.c 31 Aug 2022 16:17:18 -0000 1.6 +++ agentx_control.c 13 Dec 2023 13:15:31 -0000 @@ -462,16 +462,18 @@ void agentx_getsock(struct imsg *imsg) { struct timeval tv = AGENTX_RECONNECT_TIMEOUT; + int fd; - if (imsg->fd == -1) + fd = imsg_get_fd(imsg); + if (fd == -1) goto retry; event_del(&(env->sc_agentxev)); - event_set(&(env->sc_agentxev), imsg->fd, EV_READ | EV_PERSIST, + event_set(&(env->sc_agentxev), fd, EV_READ | EV_PERSIST, agentx_sock, env); event_add(&(env->sc_agentxev), NULL); - agentx_connect(sa, imsg->fd); + agentx_connect(sa, fd); retry: evtimer_set(&env->sc_agentxev, agentx_sock, env); Index: config.c =================================================================== RCS file: /cvs/src/usr.sbin/relayd/config.c,v diff -u -p -r1.44 config.c --- config.c 25 Jun 2023 08:07:38 -0000 1.44 +++ config.c 13 Dec 2023 13:14:26 -0000 @@ -1030,7 +1030,7 @@ config_getrelay(struct relayd *env, stru memcpy(&rlay->rl_conf, p, sizeof(rlay->rl_conf)); s = sizeof(rlay->rl_conf); - rlay->rl_s = imsg->fd; + rlay->rl_s = imsg_get_fd(imsg); rlay->rl_tls_ca_fd = -1; rlay->rl_tls_cacert_fd = -1; @@ -1148,19 +1148,19 @@ config_getrelayfd(struct relayd *env, st switch (crfd.type) { case RELAY_FD_CERT: - cert->cert_fd = imsg->fd; + cert->cert_fd = imsg_get_fd(imsg); break; case RELAY_FD_KEY: - cert->cert_key_fd = imsg->fd; + cert->cert_key_fd = imsg_get_fd(imsg); break; case RELAY_FD_OCSP: - cert->cert_ocsp_fd = imsg->fd; + cert->cert_ocsp_fd = imsg_get_fd(imsg); break; case RELAY_FD_CACERT: - rlay->rl_tls_ca_fd = imsg->fd; + rlay->rl_tls_ca_fd = imsg_get_fd(imsg); break; case RELAY_FD_CAFILE: - rlay->rl_tls_cacert_fd = imsg->fd; + rlay->rl_tls_cacert_fd = imsg_get_fd(imsg); break; } Index: proc.c =================================================================== RCS file: /cvs/src/usr.sbin/relayd/proc.c,v diff -u -p -r1.44 proc.c --- proc.c 15 Feb 2023 20:44:01 -0000 1.44 +++ proc.c 13 Dec 2023 13:16:18 -0000 @@ -655,7 +655,7 @@ proc_dispatch(int fd, short event, void 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: @@ -786,7 +786,7 @@ proc_forward_imsg(struct privsep *ps, st 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 * Index: relay.c =================================================================== RCS file: /cvs/src/usr.sbin/relayd/relay.c,v diff -u -p -r1.258 relay.c --- relay.c 29 Oct 2023 11:27:11 -0000 1.258 +++ relay.c 13 Dec 2023 13:14:46 -0000 @@ -1993,7 +1993,7 @@ relay_dispatch_parent(int fd, struct pri } /* Will validate the result later */ - con->se_bnds = imsg->fd; + con->se_bnds = imsg_get_fd(imsg); evtimer_del(&con->se_ev); evtimer_set(&con->se_ev, relay_bindany, con);