On Mon, Sep 07, 2026 at 06:37:16AM +0200, Theo Buehler wrote:
> This diff addresses the remaining fallout from the libutil bump.
> 
> imsgbuf_get() does the same thing as the now removed imsg_get() except
> that it doesn't have a special return value != -1, 0 and its return type
> is an int, not a ssize_t.
> 
> None of these ports looks at this special value, so all the calls can
> just be replaced.

Thanks for beating me to it. All the diffs look OK to me.
 
> diff --git a/audio/amused/patches/patch-amused_c 
> b/audio/amused/patches/patch-amused_c
> new file mode 100644
> index 00000000000..f731758a4d7
> --- /dev/null
> +++ b/audio/amused/patches/patch-amused_c
> @@ -0,0 +1,14 @@
> +Index: amused.c
> +--- amused.c.orig
> ++++ amused.c
> +@@ -123,8 +123,8 @@ main_dispatch_player(int sig, int event, void *d)
> +     }
> + 
> +     for (;;) {
> +-            if ((n = imsg_get(imsgbuf, &imsg)) == -1)
> +-                    fatal("imsg_get");
> ++            if ((n = imsgbuf_get(imsgbuf, &imsg)) == -1)
> ++                    fatal("imsgbuf_get");
> +             if (n == 0)     /* No more messages. */
> +                     break;
> + 
> diff --git a/audio/amused/patches/patch-control_c 
> b/audio/amused/patches/patch-control_c
> new file mode 100644
> index 00000000000..988c138cb97
> --- /dev/null
> +++ b/audio/amused/patches/patch-control_c
> @@ -0,0 +1,23 @@
> +Index: control.c
> +--- control.c.orig
> ++++ control.c
> +@@ -279,8 +279,8 @@ control_dispatch_imsg(int fd, int event, void *bula)
> +     struct imsg              imsg;
> +     struct player_mode       mode;
> +     struct player_seek       seek;
> +-    ssize_t                  n, off;
> +-    int                      type, all;
> ++    ssize_t                  off;
> ++    int                      n, type, all;
> + 
> +     if ((c = control_connbyfd(fd)) == NULL) {
> +             log_warnx("%s: fd %d: not found", __func__, fd);
> +@@ -304,7 +304,7 @@ control_dispatch_imsg(int fd, int event, void *bula)
> +     }
> + 
> +     for (;;) {
> +-            if ((n = imsg_get(imsgbuf, &imsg)) == -1) {
> ++            if ((n = imsgbuf_get(imsgbuf, &imsg)) == -1) {
> +                     control_close(fd);
> +                     return;
> +             }
> diff --git a/audio/amused/patches/patch-ctl_c 
> b/audio/amused/patches/patch-ctl_c
> new file mode 100644
> index 00000000000..3e4c275f7cc
> --- /dev/null
> +++ b/audio/amused/patches/patch-ctl_c
> @@ -0,0 +1,24 @@
> +Index: ctl.c
> +--- ctl.c.orig
> ++++ ctl.c
> +@@ -417,8 +417,7 @@ ctlaction(struct parse_result *res)
> +     struct imsg imsg;
> +     struct player_status ps;
> +     struct player_event ev;
> +-    ssize_t n;
> +-    int i, type, ret = 0, done = 1;
> ++    int i, n, type, ret = 0, done = 1;
> + 
> +     if (pledge("stdio", NULL) == -1)
> +             fatal("pledge");
> +@@ -544,8 +543,8 @@ ctlaction(struct parse_result *res)
> +                     fatalx("pipe closed");
> + 
> +             while (!done) {
> +-                    if ((n = imsg_get(imsgbuf, &imsg)) == -1)
> +-                            fatalx("imsg_get error");
> ++                    if ((n = imsgbuf_get(imsgbuf, &imsg)) == -1)
> ++                            fatalx("imsgbuf_get error");
> +                     if (n == 0)
> +                             break;
> + 
> diff --git a/audio/amused/patches/patch-mpris2_mpris2_c 
> b/audio/amused/patches/patch-mpris2_mpris2_c
> new file mode 100644
> index 00000000000..cf6a8c6535a
> --- /dev/null
> +++ b/audio/amused/patches/patch-mpris2_mpris2_c
> @@ -0,0 +1,23 @@
> +Index: mpris2/mpris2.c
> +--- mpris2/mpris2.c.orig
> ++++ mpris2/mpris2.c
> +@@ -456,7 +456,7 @@ imsg_dispatch(GIOChannel *chan, GIOCondition cond, gpo
> +     struct imsg              imsg;
> +     struct ibuf              ibuf;
> +     struct player_event      event;
> +-    ssize_t                  n;
> ++    int                      n;
> +     size_t                   datalen;
> +     const char              *msg;
> +     char                     sha1buf[SHA1_DIGEST_STRING_LENGTH];
> +@@ -467,8 +467,8 @@ imsg_dispatch(GIOChannel *chan, GIOCondition cond, gpo
> +             fatalx("pipe closed");
> + 
> +     for (;;) {
> +-            if ((n = imsg_get(imsgbuf, &imsg)) == -1)
> +-                    fatal("imsg_get");
> ++            if ((n = imsgbuf_get(imsgbuf, &imsg)) == -1)
> ++                    fatal("imsgbuf_get");
> +             if (n == 0)
> +                     break;
> + 
> diff --git a/audio/amused/patches/patch-player_c 
> b/audio/amused/patches/patch-player_c
> new file mode 100644
> index 00000000000..0cca2f46a5c
> --- /dev/null
> +++ b/audio/amused/patches/patch-player_c
> @@ -0,0 +1,22 @@
> +Index: player.c
> +--- player.c.orig
> ++++ player.c
> +@@ -114,15 +114,14 @@ player_dispatch(int64_t *s, int wait)
> +     struct player_seek seek;
> +     struct pollfd   pfd;
> +     struct imsg     imsg;
> +-    ssize_t         n;
> +-    int             ret;
> ++    int             n, ret;
> + 
> +     if (halted != 0)
> +             return IMSG_STOP;
> + 
> + again:
> +-    if ((n = imsg_get(imsgbuf, &imsg)) == -1)
> +-            fatal("imsg_get");
> ++    if ((n = imsgbuf_get(imsgbuf, &imsg)) == -1)
> ++            fatal("imsgbuf_get");
> +     if (n == 0) {
> +             if (!wait)
> +                     return -1;
> diff --git a/audio/amused/patches/patch-web_web_c 
> b/audio/amused/patches/patch-web_web_c
> new file mode 100644
> index 00000000000..aecca1d8dea
> --- /dev/null
> +++ b/audio/amused/patches/patch-web_web_c
> @@ -0,0 +1,25 @@
> +Index: web/web.c
> +--- web/web.c.orig
> ++++ web/web.c
> +@@ -470,9 +470,8 @@ imsg_dispatch(int fd, int ev, void *d)
> +     struct player_status     ps;
> +     struct player_event      event;
> +     const char              *msg;
> +-    ssize_t                  n;
> +     size_t                   datalen;
> +-    int                      r;
> ++    int                      n, r;
> + 
> +     if (ev & EV_READ) {
> +             if ((n = imsgbuf_read(&imsgbuf)) == -1)
> +@@ -486,8 +485,8 @@ imsg_dispatch(int fd, int ev, void *d)
> +     }
> + 
> +     for (;;) {
> +-            if ((n = imsg_get(&imsgbuf, &imsg)) == -1)
> +-                    fatal("imsg_get");
> ++            if ((n = imsgbuf_get(&imsgbuf, &imsg)) == -1)
> ++                    fatal("imsgbuf_get");
> +             if (n == 0)
> +                     break;
> + 
> diff --git a/net/gelatod/patches/patch-frontend_c 
> b/net/gelatod/patches/patch-frontend_c
> new file mode 100644
> index 00000000000..9cf6e33b7ce
> --- /dev/null
> +++ b/net/gelatod/patches/patch-frontend_c
> @@ -0,0 +1,24 @@
> +Index: frontend.c
> +--- frontend.c.orig
> ++++ frontend.c
> +@@ -364,8 +364,7 @@ frontend_dispatch_main(int fd, short event, void *bula
> +     struct imsg              imsg;
> +     struct imsgev           *iev = bula;
> +     struct imsgbuf          *ibuf = &iev->ibuf;
> +-    ssize_t                  n;
> +-    int                      shut = 0;
> ++    int                      n, shut = 0;
> + 
> +     if (event & EV_READ) {
> +             if ((n = imsgbuf_read(ibuf)) == -1)
> +@@ -383,8 +382,8 @@ frontend_dispatch_main(int fd, short event, void *bula
> +     }
> + 
> +     for (;;) {
> +-            if ((n = imsg_get(ibuf, &imsg)) == -1)
> +-                    fatal("%s: imsg_get error", __func__);
> ++            if ((n = imsgbuf_get(ibuf, &imsg)) == -1)
> ++                    fatal("%s: imsgbuf_get error", __func__);
> +             if (n == 0)     /* No more messages. */
> +                     break;
> + 
> diff --git a/net/gelatod/patches/patch-gelatod_c 
> b/net/gelatod/patches/patch-gelatod_c
> new file mode 100644
> index 00000000000..d1281d0b667
> --- /dev/null
> +++ b/net/gelatod/patches/patch-gelatod_c
> @@ -0,0 +1,24 @@
> +Index: gelatod.c
> +--- gelatod.c.orig
> ++++ gelatod.c
> +@@ -308,8 +308,7 @@ main_dispatch_frontend(int fd, short event, void *bula
> +     struct imsgbuf          *ibuf;
> +     struct imsg              imsg;
> +     struct clat_imsg         clat_imsg;
> +-    ssize_t                  n;
> +-    int                      shut = 0;
> ++    int                      n, shut = 0;
> + 
> +     ibuf = &iev->ibuf;
> + 
> +@@ -329,8 +328,8 @@ main_dispatch_frontend(int fd, short event, void *bula
> +     }
> + 
> +     for (;;) {
> +-            if ((n = imsg_get(ibuf, &imsg)) == -1)
> +-                    fatal("imsg_get");
> ++            if ((n = imsgbuf_get(ibuf, &imsg)) == -1)
> ++                    fatal("imsgbuf_get");
> +             if (n == 0)     /* No more messages. */
> +                     break;
> + 
> diff --git a/net/openmdns/patches/patch-libmdns_mdnsl_c 
> b/net/openmdns/patches/patch-libmdns_mdnsl_c
> index 78f9ca156b8..1476464a468 100644
> --- a/net/openmdns/patches/patch-libmdns_mdnsl_c
> +++ b/net/openmdns/patches/patch-libmdns_mdnsl_c
> @@ -22,7 +22,16 @@ Index: libmdns/mdnsl.c
>   }
>   
>   void
> -@@ -329,7 +330,7 @@ mdns_read(struct mdns *m)
> +@@ -321,21 +322,20 @@ mdns_service_init(struct mdns_service *ms, const char 
> + ssize_t
> + mdns_read(struct mdns *m)
> + {
> +-    int                     ev;
> +-    size_t                  r;
> ++    int                     ev, r;
> +     ssize_t                 n;
> +     struct imsg             imsg;
> +     struct rr               rr;
>       struct mdns_service     ms;
>       char                    groupname[MAXHOSTNAMELEN];
>   
> @@ -31,7 +40,14 @@ Index: libmdns/mdnsl.c
>   
>       if (n == -1 || n == 0)
>               return (n);
> -@@ -514,7 +515,7 @@ ibuf_send_imsg(struct imsgbuf *ibuf, u_int32_t type,
> + 
> +     /* TODO call imsgctl_to_event() */
> +-    while ((r = imsg_get(&m->ibuf, &imsg)) > 0) {
> ++    while ((r = imsgbuf_get(&m->ibuf, &imsg)) > 0) {
> +             switch (imsg.hdr.type) {
> +             case IMSG_CTL_LOOKUP: /* FALLTHROUGH */
> +             case IMSG_CTL_LOOKUP_FAILURE:
> +@@ -514,7 +514,7 @@ ibuf_send_imsg(struct imsgbuf *ibuf, u_int32_t type,
>   
>       imsg_close(ibuf, wbuf);
>   
> diff --git a/net/openmdns/patches/patch-mdnsd_control_c 
> b/net/openmdns/patches/patch-mdnsd_control_c
> index 2231d58b848..aea465c3d6d 100644
> --- a/net/openmdns/patches/patch-mdnsd_control_c
> +++ b/net/openmdns/patches/patch-mdnsd_control_c
> @@ -37,7 +37,16 @@ Index: mdnsd/control.c
>       TAILQ_REMOVE(&ctl_conns, c, entry);
>   
>       event_del(&c->iev.ev);
> -@@ -644,13 +651,13 @@ control_dispatch_imsg(int fd, short event, void *bula)
> +@@ -636,7 +643,7 @@ control_dispatch_imsg(int fd, short event, void *bula)
> + {
> +     struct ctl_conn *c;
> +     struct imsg      imsg;
> +-    ssize_t          n;
> ++    int              n;
> + 
> +     if ((c = control_connbyfd(fd)) == NULL) {
> +             log_warn("control_dispatch_imsg: fd %d: not found", fd);
> +@@ -644,20 +651,20 @@ control_dispatch_imsg(int fd, short event, void *bula)
>       }
>   
>       if (event & EV_READ) {
> @@ -53,3 +62,11 @@ Index: mdnsd/control.c
>                       control_close(fd);
>                       return;
>               }
> +     }
> + 
> +     for (;;) {
> +-            if ((n = imsg_get(&c->iev.ibuf, &imsg)) == -1) {
> ++            if ((n = imsgbuf_get(&c->iev.ibuf, &imsg)) == -1) {
> +                     control_close(fd);
> +                     return;
> +             }
> diff --git a/net/pfresolved/patches/patch-control_c 
> b/net/pfresolved/patches/patch-control_c
> index 0f2fb8d24e5..167a1b20c80 100644
> --- a/net/pfresolved/patches/patch-control_c
> +++ b/net/pfresolved/patches/patch-control_c
> @@ -23,7 +23,7 @@ Index: control.c
>       TAILQ_REMOVE(&ctl_conns, c, entry);
>   
>       event_del(&c->iev.ev);
> -@@ -247,14 +251,13 @@ control_dispatch_imsg(int fd, short event, void *arg)
> +@@ -247,21 +251,20 @@ control_dispatch_imsg(int fd, short event, void *arg)
>       }
>   
>       if (event & EV_READ) {
> @@ -40,3 +40,11 @@ Index: control.c
>                       control_close(fd, cs);
>                       return;
>               }
> +     }
> + 
> +     for (;;) {
> +-            if ((n = imsg_get(&c->iev.ibuf, &imsg)) == -1) {
> ++            if ((n = imsgbuf_get(&c->iev.ibuf, &imsg)) == -1) {
> +                     control_close(fd, cs);
> +                     return;
> +             }
> diff --git a/net/pfresolved/patches/patch-pfresolvectl_pfresolvectl_c 
> b/net/pfresolved/patches/patch-pfresolvectl_pfresolvectl_c
> index fedc9038ea2..4202c169acc 100644
> --- a/net/pfresolved/patches/patch-pfresolvectl_pfresolvectl_c
> +++ b/net/pfresolved/patches/patch-pfresolvectl_pfresolvectl_c
> @@ -11,7 +11,7 @@ Index: pfresolvectl/pfresolvectl.c
>   
>       switch (res->action) {
>       case NONE:
> -@@ -113,14 +114,14 @@ main(int argc, char **argv)
> +@@ -113,20 +114,20 @@ main(int argc, char **argv)
>               break;
>       }
>   
> @@ -31,3 +31,11 @@ Index: pfresolvectl/pfresolvectl.c
>               if (n == 0)
>                       errx(1, "%s: pipe closed", __func__);
>   
> +             while (!done) {
> +-                    if ((n = imsg_get(ibuf, &imsg)) == -1)
> +-                            errx(1, "%s: imsg_get error", __func__);
> ++                    if ((n = imsgbuf_get(ibuf, &imsg)) == -1)
> ++                            errx(1, "%s: imsgbuf_get error", __func__);
> +                     if (n == 0)
> +                             break;
> + 
> diff --git a/net/pfresolved/patches/patch-proc_c 
> b/net/pfresolved/patches/patch-proc_c
> index c316b919498..a7486ff5e32 100644
> --- a/net/pfresolved/patches/patch-proc_c
> +++ b/net/pfresolved/patches/patch-proc_c
> @@ -33,7 +33,17 @@ Index: proc.c
>                       close(pp->pp_pipes[dst][n]);
>                       pp->pp_pipes[dst][n] = -1;
>               }
> -@@ -753,8 +758,8 @@ proc_dispatch(int fd, short event, void *arg)
> +@@ -744,8 +749,7 @@ proc_dispatch(int fd, short event, void *arg)
> +     struct privsep          *ps = p->p_ps;
> +     struct imsgbuf          *ibuf;
> +     struct imsg              imsg;
> +-    ssize_t                  n;
> +-    int                      verbose;
> ++    int                      n, verbose;
> +     const char              *title;
> +     struct privsep_fd        pf;
> + 
> +@@ -753,8 +757,8 @@ proc_dispatch(int fd, short event, void *arg)
>       ibuf = &iev->ibuf;
>   
>       if (event & EV_READ) {
> @@ -44,7 +54,7 @@ Index: proc.c
>               if (n == 0) {
>                       /* this pipe is dead, so remove the event handler */
>                       event_del(&iev->ev);
> -@@ -764,13 +769,14 @@ proc_dispatch(int fd, short event, void *arg)
> +@@ -764,19 +768,20 @@ proc_dispatch(int fd, short event, void *arg)
>       }
>   
>       if (event & EV_WRITE) {
> @@ -66,7 +76,15 @@ Index: proc.c
>               }
>       }
>   
> -@@ -807,7 +813,7 @@ proc_dispatch(int fd, short event, void *arg)
> +     for (;;) {
> +-            if ((n = imsg_get(ibuf, &imsg)) == -1)
> +-                    fatal("%s: imsg_get", __func__);
> ++            if ((n = imsgbuf_get(ibuf, &imsg)) == -1)
> ++                    fatal("%s: imsgbuf_get", __func__);
> +             if (n == 0)
> +                     break;
> + 
> +@@ -807,7 +812,7 @@ proc_dispatch(int fd, short event, void *arg)
>               case IMSG_CTL_PROCFD:
>                       IMSG_SIZE_CHECK(&imsg, &pf);
>                       memcpy(&pf, imsg.data, sizeof(pf));
> @@ -75,7 +93,7 @@ Index: proc.c
>                           pf.pf_instance);
>                       break;
>               default:
> -@@ -836,12 +842,12 @@ void
> +@@ -836,12 +841,12 @@ void
>   imsg_event_add(struct imsgev *iev)
>   {
>       if (iev->handler == NULL) {
> @@ -90,7 +108,7 @@ Index: proc.c
>               iev->events |= EV_WRITE;
>   
>       event_del(&iev->ev);
> -@@ -941,7 +947,8 @@ proc_forward_imsg(struct privsep *ps, struct imsg *ims
> +@@ -941,7 +946,8 @@ proc_forward_imsg(struct privsep *ps, struct imsg *ims
>       enum privsep_procid id, int n)
>   {
>       return (proc_compose_imsg(ps, id, n, imsg->hdr.type,
> @@ -100,7 +118,7 @@ Index: proc.c
>   }
>   
>   struct imsgbuf *
> -@@ -974,7 +981,7 @@ proc_flush_imsg(struct privsep *ps, enum privsep_proci
> +@@ -974,7 +980,7 @@ proc_flush_imsg(struct privsep *ps, enum privsep_proci
>               if ((ibuf = proc_ibuf(ps, id, n)) == NULL)
>                       return (-1);
>               do {
> diff --git a/net/telescope/patches/patch-control_c 
> b/net/telescope/patches/patch-control_c
> new file mode 100644
> index 00000000000..ac2676a1ea4
> --- /dev/null
> +++ b/net/telescope/patches/patch-control_c
> @@ -0,0 +1,21 @@
> +Index: control.c
> +--- control.c.orig
> ++++ control.c
> +@@ -231,7 +231,7 @@ control_dispatch_imsg(int fd, int event, void *bula)
> + {
> +     struct ctl_conn *c;
> +     struct imsg      imsg;
> +-    ssize_t          n;
> ++    int              n;
> + 
> +     if ((c = control_connbyfd(fd)) == NULL) {
> +             message("%s: fd %d: not found", __func__, fd);
> +@@ -252,7 +252,7 @@ control_dispatch_imsg(int fd, int event, void *bula)
> +     }
> + 
> +     for (;;) {
> +-            if ((n = imsg_get(&c->iev.ibuf, &imsg)) == -1) {
> ++            if ((n = imsgbuf_get(&c->iev.ibuf, &imsg)) == -1) {
> +                     control_close(fd);
> +                     return;
> +             }
> diff --git a/net/telescope/patches/patch-net_c 
> b/net/telescope/patches/patch-net_c
> new file mode 100644
> index 00000000000..31c63ca3239
> --- /dev/null
> +++ b/net/telescope/patches/patch-net_c
> @@ -0,0 +1,24 @@
> +Index: net.c
> +--- net.c.orig
> ++++ net.c
> +@@ -576,8 +576,7 @@ handle_dispatch_imsg(int fd, int event, void *d)
> +     struct imsg      imsg;
> +     struct req      *req;
> +     struct get_req   r;
> +-    ssize_t          n;
> +-    int              certok;
> ++    int              certok, n;
> + 
> +     if (event & EV_READ) {
> +             if (imsgbuf_read(ibuf) == -1) {
> +@@ -593,8 +592,8 @@ handle_dispatch_imsg(int fd, int event, void *d)
> +     }
> + 
> +     for (;;) {
> +-            if ((n = imsg_get(ibuf, &imsg)) == -1)
> +-                    err(1, "imsg_get");
> ++            if ((n = imsgbuf_get(ibuf, &imsg)) == -1)
> ++                    err(1, "imsgbuf_get");
> +             if (n == 0)
> +                     break;
> +             switch (imsg_get_type(&imsg)) {
> diff --git a/net/telescope/patches/patch-telescope_c 
> b/net/telescope/patches/patch-telescope_c
> new file mode 100644
> index 00000000000..84cda796a29
> --- /dev/null
> +++ b/net/telescope/patches/patch-telescope_c
> @@ -0,0 +1,24 @@
> +Index: telescope.c
> +--- telescope.c.orig
> ++++ telescope.c
> +@@ -453,8 +453,7 @@ handle_dispatch_imsg(int fd, int event, void *data)
> +     struct download *d;
> +     const char      *h;
> +     char            *str, *page;
> +-    ssize_t          n;
> +-    int              code;
> ++    int              code, n;
> + 
> +     if (event & EV_READ) {
> +             if (imsgbuf_read(imsgbuf) == -1)
> +@@ -466,8 +465,8 @@ handle_dispatch_imsg(int fd, int event, void *data)
> +     }
> + 
> +     for (;;) {
> +-            if ((n = imsg_get(imsgbuf, &imsg)) == -1)
> +-                    err(1, "imsg_get");
> ++            if ((n = imsgbuf_get(imsgbuf, &imsg)) == -1)
> ++                    err(1, "imsgbuf_get");
> +             if (n == 0)
> +                     break;
> + 
> diff --git a/net/thingsd/patches/patch-thingsctl_thingsctl_c 
> b/net/thingsd/patches/patch-thingsctl_thingsctl_c
> index c16f1c8cc44..ce1845194e9 100644
> --- a/net/thingsd/patches/patch-thingsctl_thingsctl_c
> +++ b/net/thingsd/patches/patch-thingsctl_thingsctl_c
> @@ -27,6 +27,17 @@ Index: thingsctl/thingsctl.c
>                       errx(1, "imsg_read error");
>               if (n == 0) {
>                       if (res->action == SHOW_PACKETS)
> +@@ -202,8 +202,8 @@ main(int argc, char *argv[])
> +             }
> + 
> +             while (!done) {
> +-                    if ((n = imsg_get(ibuf, &imsg)) == -1)
> +-                            errx(1, "imsg_get error");
> ++                    if ((n = imsgbuf_get(ibuf, &imsg)) == -1)
> ++                            errx(1, "imsgbuf_get error");
> +                     if (n == 0)
> +                             break;
> + 
>  @@ -226,7 +226,7 @@ main(int argc, char *argv[])
>                                       done = 1;
>                                       break;
> diff --git a/net/thingsd/patches/patch-thingsd_control_c 
> b/net/thingsd/patches/patch-thingsd_control_c
> index 5b646fa1b76..f8d47201058 100644
> --- a/net/thingsd/patches/patch-thingsd_control_c
> +++ b/net/thingsd/patches/patch-thingsd_control_c
> @@ -24,7 +24,7 @@ Index: thingsd/control.c
>       TAILQ_REMOVE(&ctl_conns, c, entry);
>   
>       event_del(&c->iev.ev);
> -@@ -397,15 +402,15 @@ control_dispatch_imsg(int fd, short event, void *arg)
> +@@ -397,22 +402,22 @@ control_dispatch_imsg(int fd, short event, void *arg)
>       }
>   
>       if (event & EV_READ) {
> @@ -43,6 +43,14 @@ Index: thingsd/control.c
>                       control_close(ps, &imsg, fd, cs);
>                       return;
>               }
> +     }
> + 
> +     for (;;) {
> +-            n = imsg_get(&c->iev.ibuf, &imsg);
> ++            n = imsgbuf_get(&c->iev.ibuf, &imsg);
> +             if (n == -1) {
> +                     control_close(ps, &imsg, fd, cs);
> +                     return;
>  @@ -505,7 +510,7 @@ control_dispatch_imsg(int fd, short event, void *arg)
>   fail:
>       imsg_compose_event(&c->iev, IMSG_CTL_FAIL,
> diff --git a/net/thingsd/patches/patch-thingsd_proc_c 
> b/net/thingsd/patches/patch-thingsd_proc_c
> index b3a529d04df..2cd903c74ec 100644
> --- a/net/thingsd/patches/patch-thingsd_proc_c
> +++ b/net/thingsd/patches/patch-thingsd_proc_c
> @@ -33,7 +33,17 @@ Index: thingsd/proc.c
>                       close(pp->pp_pipes[dst][n]);
>                       pp->pp_pipes[dst][n] = -1;
>               }
> -@@ -625,7 +630,7 @@ proc_dispatch(int fd, short event, void *arg)
> +@@ -616,8 +621,7 @@ proc_dispatch(int fd, short event, void *arg)
> +     struct privsep          *ps = p->p_ps;
> +     struct imsgbuf          *ibuf;
> +     struct imsg              imsg;
> +-    ssize_t                  n;
> +-    int                      verbose;
> ++    int                      n, verbose;
> +     const char              *title;
> +     struct privsep_fd        pf;
> + 
> +@@ -625,7 +629,7 @@ proc_dispatch(int fd, short event, void *arg)
>       ibuf = &iev->ibuf;
>   
>       if (event & EV_READ) {
> @@ -42,7 +52,7 @@ Index: thingsd/proc.c
>                       fatal("%s: imsg_read", __func__);
>               if (n == 0) {
>                       /* this pipe is dead, so remove the event handler */
> -@@ -636,13 +641,14 @@ proc_dispatch(int fd, short event, void *arg)
> +@@ -636,19 +640,20 @@ proc_dispatch(int fd, short event, void *arg)
>       }
>   
>       if (event & EV_WRITE) {
> @@ -63,7 +73,15 @@ Index: thingsd/proc.c
>               }
>       }
>   
> -@@ -679,7 +685,7 @@ proc_dispatch(int fd, short event, void *arg)
> +     for (;;) {
> +-            if ((n = imsg_get(ibuf, &imsg)) == -1)
> +-                    fatal("%s: imsg_get", __func__);
> ++            if ((n = imsgbuf_get(ibuf, &imsg)) == -1)
> ++                    fatal("%s: imsgbuf_get", __func__);
> +             if (n == 0)
> +                     break;
> + 
> +@@ -679,7 +684,7 @@ proc_dispatch(int fd, short event, void *arg)
>               case IMSG_CTL_PROCFD:
>                       IMSG_SIZE_CHECK(&imsg, &pf);
>                       memcpy(&pf, imsg.data, sizeof(pf));
> @@ -72,7 +90,7 @@ Index: thingsd/proc.c
>                           pf.pf_instance);
>                       break;
>               default:
> -@@ -712,12 +718,12 @@ void
> +@@ -712,12 +717,12 @@ void
>   imsg_event_add(struct imsgev *iev)
>   {
>       if (iev->handler == NULL) {
> @@ -87,7 +105,7 @@ Index: thingsd/proc.c
>               iev->events |= EV_WRITE;
>   
>       event_del(&iev->ev);
> -@@ -814,7 +820,8 @@ proc_forward_imsg(struct privsep *ps, struct imsg *ims
> +@@ -814,7 +819,8 @@ proc_forward_imsg(struct privsep *ps, struct imsg *ims
>       enum privsep_procid id, int n)
>   {
>       return (proc_compose_imsg(ps, id, n, imsg->hdr.type,
> @@ -97,7 +115,7 @@ Index: thingsd/proc.c
>   }
>   
>   struct imsgbuf *
> -@@ -847,7 +854,7 @@ proc_flush_imsg(struct privsep *ps, enum privsep_proci
> +@@ -847,7 +853,7 @@ proc_flush_imsg(struct privsep *ps, enum privsep_proci
>               if ((ibuf = proc_ibuf(ps, id, n)) == NULL)
>                       return (-1);
>               do {

-- 
:wq Claudio

Reply via email to