Download raw body.
bgpd: don't fatal in rde_dump_ctx_new() for bad imsg types in the adj-rib-out case
In rde_dump_ctx_new() the adj-rib-out case only covers some of the
possible imsg types rde_dump_ctx_new() can be called with. So ship back an
error instead of the fatalx call.
The error could be refined but I think "operation not supported" is fine
for now.
--
:wq Claudio
Index: rde.c
===================================================================
RCS file: /cvs/src/usr.sbin/bgpd/rde.c,v
diff -u -p -r1.699 rde.c
--- rde.c 12 May 2026 20:27:31 -0000 1.699
+++ rde.c 13 May 2026 12:10:46 -0000
@@ -3385,7 +3385,12 @@ rde_dump_ctx_new(struct ctl_show_rib_req
free(ctx);
return;
default:
- fatalx("%s: unsupported imsg type", __func__);
+ log_warnx("%s: bad imsg type %d", __func__, req->type);
+ error = CTL_RES_OPNOTSUPP;
+ imsg_compose(ibuf_se_ctl, IMSG_CTL_RESULT, 0, pid, -1,
+ &error, sizeof(error));
+ free(ctx);
+ return;
}
LIST_INSERT_HEAD(&rde_dump_h, ctx, entry);
bgpd: don't fatal in rde_dump_ctx_new() for bad imsg types in the adj-rib-out case