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;
+	}
+}