aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/osmocom/vty/vty.h1
-rw-r--r--src/vty/command.c4
2 files changed, 5 insertions, 0 deletions
diff --git a/include/osmocom/vty/vty.h b/include/osmocom/vty/vty.h
index e7399ba1..71b6be0b 100644
--- a/include/osmocom/vty/vty.h
+++ b/include/osmocom/vty/vty.h
@@ -133,6 +133,7 @@ struct vty_app_info {
const char *copyright;
void *tall_ctx;
enum node_type (*go_parent_cb)(struct vty *vty);
+ int (*is_config_node)(struct vty *vty, int node);
};
/* Prototypes. */
diff --git a/src/vty/command.c b/src/vty/command.c
index bec28a0d..6a523216 100644
--- a/src/vty/command.c
+++ b/src/vty/command.c
@@ -141,6 +141,10 @@ static int cmp_desc(const void *p, const void *q)
static int is_config(struct vty *vty)
{
+ /* ask the application */
+ if (host.app_info->is_config_node)
+ return host.app_info->is_config_node(vty, vty->node);
+
/* Assume that everything above CONFIG_NODE is a config node */
return vty->node > CONFIG_NODE;
}