vty: Provide a is_config_node for the VTY and use it for the bsc
Right now only bsc_hack and osmo_bsc need to have a custom
config handling as they use the subscr/oml nodes.
diff --git a/openbsc/configure.in b/openbsc/configure.in
index 0167725..6adee33 100644
--- a/openbsc/configure.in
+++ b/openbsc/configure.in
@@ -44,7 +44,7 @@
AM_CONDITIONAL(BUILD_BSC, test "x$osmo_ac_build_bsc" = "xyes")
PKG_CHECK_MODULES(LIBOSMOCORE, libosmocore >= 0.1.18)
-PKG_CHECK_MODULES(LIBOSMOVTY, libosmovty >= 0.1.9)
+PKG_CHECK_MODULES(LIBOSMOVTY, libosmovty >= 0.1.19)
dnl checks for header files
AC_HEADER_STDC
diff --git a/openbsc/include/openbsc/vty.h b/openbsc/include/openbsc/vty.h
index 2b9fccc..8c75c58 100644
--- a/openbsc/include/openbsc/vty.h
+++ b/openbsc/include/openbsc/vty.h
@@ -33,4 +33,6 @@
NAT_BSC_NODE,
};
+extern int bsc_vty_is_config_node(struct vty *vty, int node);
+
#endif
diff --git a/openbsc/src/bsc/osmo_bsc_main.c b/openbsc/src/bsc/osmo_bsc_main.c
index 7ddf91d..e84450f 100644
--- a/openbsc/src/bsc/osmo_bsc_main.c
+++ b/openbsc/src/bsc/osmo_bsc_main.c
@@ -22,8 +22,8 @@
#include <openbsc/debug.h>
#include <openbsc/gsm_data.h>
#include <openbsc/osmo_bsc_rf.h>
+#include <openbsc/vty.h>
-#include <osmocom/vty/command.h>
#include <osmocore/talloc.h>
#include <osmocore/process.h>
@@ -137,6 +137,7 @@
.name = "OpenBSC Osmo BSC",
.version = PACKAGE_VERSION,
.go_parent_cb = bsc_vty_go_parent,
+ .is_config_node = bsc_vty_is_config_node,
};
diff --git a/openbsc/src/bsc_hack.c b/openbsc/src/bsc_hack.c
index 4e8309b..61b7947 100644
--- a/openbsc/src/bsc_hack.c
+++ b/openbsc/src/bsc_hack.c
@@ -38,8 +38,7 @@
#include <osmocore/talloc.h>
#include <openbsc/signal.h>
#include <openbsc/osmo_msc.h>
-
-#include <osmocom/vty/command.h>
+#include <openbsc/vty.h>
#include "../bscconfig.h"
@@ -212,6 +211,7 @@
.name = "OpenBSC",
.version = PACKAGE_VERSION,
.go_parent_cb = bsc_vty_go_parent,
+ .is_config_node = bsc_vty_is_config_node,
};
int main(int argc, char **argv)
diff --git a/openbsc/src/common_vty.c b/openbsc/src/common_vty.c
index 3c257a8..9d22146 100644
--- a/openbsc/src/common_vty.c
+++ b/openbsc/src/common_vty.c
@@ -185,3 +185,15 @@
return CMD_SUCCESS;
}
+int bsc_vty_is_config_node(struct vty *vty, int node)
+{
+ switch (node) {
+ /* add items that are not config */
+ case OML_NODE:
+ case SUBSCR_NODE:
+ return 0;
+
+ default:
+ return 1;
+ }
+}