diff options
author | Ondrej Zajicek (work) <santiago@crfreenet.org> | 2021-03-16 20:10:00 +0100 |
---|---|---|
committer | Ondrej Zajicek (work) <santiago@crfreenet.org> | 2021-03-16 20:10:00 +0100 |
commit | 2f981534902302cbd13cdb12d4f0c6e9a255687a (patch) | |
tree | c48754a98a591484e9d7a16ca05d3d287076b58c | |
parent | ae9ae864d3fec20a74ce2567536e186ce178d032 (diff) |
Pipe: Propagate debug flags from protocol to channels
Pipe channels are kind-of implicit, so setting protocol debug flags
should also set pipe debug flags.
-rw-r--r-- | nest/proto.c | 7 | ||||
-rw-r--r-- | proto/pipe/pipe.c | 12 |
2 files changed, 19 insertions, 0 deletions
diff --git a/nest/proto.c b/nest/proto.c index b3c6fa47..f05fbe92 100644 --- a/nest/proto.c +++ b/nest/proto.c @@ -2210,10 +2210,17 @@ proto_cmd_reload(struct proto *p, uintptr_t dir, int cnt UNUSED) cli_msg(-15, "%s: reloading", p->name); } +extern void pipe_update_debug(struct proto *P); + void proto_cmd_debug(struct proto *p, uintptr_t mask, int cnt UNUSED) { p->debug = mask; + +#ifdef CONFIG_PIPE + if (p->proto == &proto_pipe) + pipe_update_debug(p); +#endif } void diff --git a/proto/pipe/pipe.c b/proto/pipe/pipe.c index 7b5de324..3532f114 100644 --- a/proto/pipe/pipe.c +++ b/proto/pipe/pipe.c @@ -141,6 +141,8 @@ pipe_postconfig(struct proto_config *CF) if (cc->in_keep_filtered) cf_error("Pipe protocol prohibits keeping filtered routes"); + + cc->debug = cf->c.debug; } static int @@ -155,6 +157,7 @@ pipe_configure_channels(struct pipe_proto *p, struct pipe_config *cf) .out_filter = cc->out_filter, .in_limit = cc->in_limit, .ra_mode = RA_ANY, + .debug = cc->debug, .rpki_reload = cc->rpki_reload, }; @@ -165,6 +168,7 @@ pipe_configure_channels(struct pipe_proto *p, struct pipe_config *cf) .out_filter = cc->in_filter, .in_limit = cc->out_limit, .ra_mode = RA_ANY, + .debug = cc->debug, .rpki_reload = cc->rpki_reload, }; @@ -278,6 +282,14 @@ pipe_show_proto_info(struct proto *P) pipe_show_stats(p); } +void +pipe_update_debug(struct proto *P) +{ + struct pipe_proto *p = (void *) P; + + p->pri->debug = p->sec->debug = p->p.debug; +} + struct protocol proto_pipe = { .name = "Pipe", |