[MERGED] osmo-bsc[master]: libcommon: eliminate common_vty.c

2018-02-14 Thread Harald Welte
Harald Welte has submitted this change and it was merged.

Change subject: libcommon: eliminate common_vty.c
..


libcommon: eliminate common_vty.c

Move bsc_vty_go_parent() to osmo_bsc_main.c and bsc_nat.c, and drop those nodes
that aren't used in the respective main scope.

Change-Id: I22ebb76742e9c5ab9dd608ac089a5c558aceeb36
---
M include/osmocom/bsc/vty.h
M src/libcommon/Makefile.am
D src/libcommon/common_vty.c
M src/osmo-bsc/osmo_bsc_main.c
M src/osmo-bsc_nat/bsc_nat.c
5 files changed, 129 insertions(+), 157 deletions(-)

Approvals:
  Vadim Yanitskiy: Looks good to me, but someone else must approve
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/include/osmocom/bsc/vty.h b/include/osmocom/bsc/vty.h
index f705601..daf9750 100644
--- a/include/osmocom/bsc/vty.h
+++ b/include/osmocom/bsc/vty.h
@@ -41,8 +41,6 @@
HLR_NODE,
 };
 
-extern int bsc_vty_is_config_node(struct vty *vty, int node);
-
 struct log_info;
 int bsc_vty_init(struct gsm_network *network);
 int bsc_vty_init_extra(void);
diff --git a/src/libcommon/Makefile.am b/src/libcommon/Makefile.am
index af578a2..1a73e6c 100644
--- a/src/libcommon/Makefile.am
+++ b/src/libcommon/Makefile.am
@@ -20,7 +20,6 @@
$(NULL)
 
 libcommon_a_SOURCES = \
-   common_vty.c \
debug.c \
gsm_data.c \
gsm_data_shared.c \
diff --git a/src/libcommon/common_vty.c b/src/libcommon/common_vty.c
deleted file mode 100644
index 82327d1..000
--- a/src/libcommon/common_vty.c
+++ /dev/null
@@ -1,152 +0,0 @@
-/* OpenBSC VTY common helpers */
-/* (C) 2009-2010 by Harald Welte 
- * (C) 2009-2010 by Holger Hans Peter Freyther
- * All Rights Reserved
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see .
- *
- */
-
-#include 
-#include 
-
-#include 
-
-#include 
-#include 
-#include 
-#include 
-#include 
-
-#include 
-#include 
-#include 
-#include 
-#include 
-
-
-int bsc_vty_go_parent(struct vty *vty)
-{
-   switch (vty->node) {
-   case GSMNET_NODE:
-   vty->node = CONFIG_NODE;
-   vty->index = NULL;
-   break;
-   case BTS_NODE:
-   vty->node = GSMNET_NODE;
-   {
-   /* set vty->index correctly ! */
-   struct gsm_bts *bts = vty->index;
-   vty->index = bts->network;
-   vty->index_sub = NULL;
-   }
-   break;
-   case TRX_NODE:
-   vty->node = BTS_NODE;
-   {
-   /* set vty->index correctly ! */
-   struct gsm_bts_trx *trx = vty->index;
-   vty->index = trx->bts;
-   vty->index_sub = &trx->bts->description;
-   }
-   break;
-   case TS_NODE:
-   vty->node = TRX_NODE;
-   {
-   /* set vty->index correctly ! */
-   struct gsm_bts_trx_ts *ts = vty->index;
-   vty->index = ts->trx;
-   vty->index_sub = &ts->trx->description;
-   }
-   break;
-   case OML_NODE:
-   case OM2K_NODE:
-   vty->node = ENABLE_NODE;
-   /* NOTE: this only works because it's not part of the config
-* tree, where outer commands are searched via vty_go_parent()
-* and only (!) executed when a matching one is found.
-*/
-   talloc_free(vty->index);
-   vty->index = NULL;
-   break;
-   case OM2K_CON_GROUP_NODE:
-   vty->node = BTS_NODE;
-   {
-   struct con_group *cg = vty->index;
-   struct gsm_bts *bts = cg->bts;
-   vty->index = bts;
-   vty->index_sub = &bts->description;
-   }
-   break;
-   case NAT_BSC_NODE:
-   vty->node = NAT_NODE;
-   {
-   struct bsc_config *bsc_config = vty->index;
-   vty->index = bsc_config->nat;
-   }
-   break;
-   case PGROUP_NODE:
-   vty->node = NAT_NODE;
-   vty->index = NULL;
-   break;
-   case TRU

osmo-bsc[master]: libcommon: eliminate common_vty.c

2018-02-14 Thread Harald Welte

Patch Set 3: Code-Review+2

-- 
To view, visit https://gerrit.osmocom.org/6429
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I22ebb76742e9c5ab9dd608ac089a5c558aceeb36
Gerrit-PatchSet: 3
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Vadim Yanitskiy 
Gerrit-HasComments: No


osmo-bsc[master]: libcommon: eliminate common_vty.c

2018-02-14 Thread Vadim Yanitskiy

Patch Set 3: Code-Review+1

-- 
To view, visit https://gerrit.osmocom.org/6429
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I22ebb76742e9c5ab9dd608ac089a5c558aceeb36
Gerrit-PatchSet: 3
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Vadim Yanitskiy 
Gerrit-HasComments: No


[PATCH] osmo-bsc[master]: libcommon: eliminate common_vty.c

2018-02-14 Thread Neels Hofmeyr
Hello Jenkins Builder,

I'd like you to reexamine a change.  Please visit

https://gerrit.osmocom.org/6429

to look at the new patch set (#3).

libcommon: eliminate common_vty.c

Move bsc_vty_go_parent() to osmo_bsc_main.c and bsc_nat.c, and drop those nodes
that aren't used in the respective main scope.

Change-Id: I22ebb76742e9c5ab9dd608ac089a5c558aceeb36
---
M include/osmocom/bsc/vty.h
M src/libcommon/Makefile.am
D src/libcommon/common_vty.c
M src/osmo-bsc/osmo_bsc_main.c
M src/osmo-bsc_nat/bsc_nat.c
5 files changed, 129 insertions(+), 157 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/29/6429/3

diff --git a/include/osmocom/bsc/vty.h b/include/osmocom/bsc/vty.h
index f705601..daf9750 100644
--- a/include/osmocom/bsc/vty.h
+++ b/include/osmocom/bsc/vty.h
@@ -41,8 +41,6 @@
HLR_NODE,
 };
 
-extern int bsc_vty_is_config_node(struct vty *vty, int node);
-
 struct log_info;
 int bsc_vty_init(struct gsm_network *network);
 int bsc_vty_init_extra(void);
diff --git a/src/libcommon/Makefile.am b/src/libcommon/Makefile.am
index af578a2..1a73e6c 100644
--- a/src/libcommon/Makefile.am
+++ b/src/libcommon/Makefile.am
@@ -20,7 +20,6 @@
$(NULL)
 
 libcommon_a_SOURCES = \
-   common_vty.c \
debug.c \
gsm_data.c \
gsm_data_shared.c \
diff --git a/src/libcommon/common_vty.c b/src/libcommon/common_vty.c
deleted file mode 100644
index 82327d1..000
--- a/src/libcommon/common_vty.c
+++ /dev/null
@@ -1,152 +0,0 @@
-/* OpenBSC VTY common helpers */
-/* (C) 2009-2010 by Harald Welte 
- * (C) 2009-2010 by Holger Hans Peter Freyther
- * All Rights Reserved
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see .
- *
- */
-
-#include 
-#include 
-
-#include 
-
-#include 
-#include 
-#include 
-#include 
-#include 
-
-#include 
-#include 
-#include 
-#include 
-#include 
-
-
-int bsc_vty_go_parent(struct vty *vty)
-{
-   switch (vty->node) {
-   case GSMNET_NODE:
-   vty->node = CONFIG_NODE;
-   vty->index = NULL;
-   break;
-   case BTS_NODE:
-   vty->node = GSMNET_NODE;
-   {
-   /* set vty->index correctly ! */
-   struct gsm_bts *bts = vty->index;
-   vty->index = bts->network;
-   vty->index_sub = NULL;
-   }
-   break;
-   case TRX_NODE:
-   vty->node = BTS_NODE;
-   {
-   /* set vty->index correctly ! */
-   struct gsm_bts_trx *trx = vty->index;
-   vty->index = trx->bts;
-   vty->index_sub = &trx->bts->description;
-   }
-   break;
-   case TS_NODE:
-   vty->node = TRX_NODE;
-   {
-   /* set vty->index correctly ! */
-   struct gsm_bts_trx_ts *ts = vty->index;
-   vty->index = ts->trx;
-   vty->index_sub = &ts->trx->description;
-   }
-   break;
-   case OML_NODE:
-   case OM2K_NODE:
-   vty->node = ENABLE_NODE;
-   /* NOTE: this only works because it's not part of the config
-* tree, where outer commands are searched via vty_go_parent()
-* and only (!) executed when a matching one is found.
-*/
-   talloc_free(vty->index);
-   vty->index = NULL;
-   break;
-   case OM2K_CON_GROUP_NODE:
-   vty->node = BTS_NODE;
-   {
-   struct con_group *cg = vty->index;
-   struct gsm_bts *bts = cg->bts;
-   vty->index = bts;
-   vty->index_sub = &bts->description;
-   }
-   break;
-   case NAT_BSC_NODE:
-   vty->node = NAT_NODE;
-   {
-   struct bsc_config *bsc_config = vty->index;
-   vty->index = bsc_config->nat;
-   }
-   break;
-   case PGROUP_NODE:
-   vty->node = NAT_NODE;
-   vty->index = NULL;
-   break;
-   case TRUNK_NODE:
-   vty->node = MGCP_NODE;
-   vty->index = NULL;
-   break;
-   

[PATCH] osmo-bsc[master]: libcommon: eliminate common_vty.c

2018-02-13 Thread Neels Hofmeyr

Review at  https://gerrit.osmocom.org/6429

libcommon: eliminate common_vty.c

Move bsc_vty_go_parent() to osmo_bsc_main.c, and greatly simplify. Since
I24cbb3f6de111f2d31110c3c484c066f1153aac9 ("VTY: implicit node exit by
de-indenting, not parent lookup") in libosmocore, the go_parent_cb no longer
needs to provide the proper transition to the parent. The VTY API now actually
remembers which is the current node's parent, as well as what its index pointer
was (i.e. no need to recover the index pointer by a switch on the node id
anymore). The only code worth keeping in the go_parent_cb is the talloc_free()
to free the OML_NODE and OM2K_NODE context when leaving it.

In bsc_nat.c, provide an essentially empty go_parent_cb: after abovementioned
commit, there still needs to be *some* go_parent_cb defined for the generic
node exit to work, even if it doesn't do anything (might be fixed later).

Change-Id: I22ebb76742e9c5ab9dd608ac089a5c558aceeb36
---
M include/osmocom/bsc/vty.h
M src/libcommon/Makefile.am
D src/libcommon/common_vty.c
M src/osmo-bsc/osmo_bsc_main.c
M src/osmo-bsc_nat/bsc_nat.c
5 files changed, 54 insertions(+), 157 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/29/6429/1

diff --git a/include/osmocom/bsc/vty.h b/include/osmocom/bsc/vty.h
index f705601..daf9750 100644
--- a/include/osmocom/bsc/vty.h
+++ b/include/osmocom/bsc/vty.h
@@ -41,8 +41,6 @@
HLR_NODE,
 };
 
-extern int bsc_vty_is_config_node(struct vty *vty, int node);
-
 struct log_info;
 int bsc_vty_init(struct gsm_network *network);
 int bsc_vty_init_extra(void);
diff --git a/src/libcommon/Makefile.am b/src/libcommon/Makefile.am
index af578a2..1a73e6c 100644
--- a/src/libcommon/Makefile.am
+++ b/src/libcommon/Makefile.am
@@ -20,7 +20,6 @@
$(NULL)
 
 libcommon_a_SOURCES = \
-   common_vty.c \
debug.c \
gsm_data.c \
gsm_data_shared.c \
diff --git a/src/libcommon/common_vty.c b/src/libcommon/common_vty.c
deleted file mode 100644
index 82327d1..000
--- a/src/libcommon/common_vty.c
+++ /dev/null
@@ -1,152 +0,0 @@
-/* OpenBSC VTY common helpers */
-/* (C) 2009-2010 by Harald Welte 
- * (C) 2009-2010 by Holger Hans Peter Freyther
- * All Rights Reserved
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see .
- *
- */
-
-#include 
-#include 
-
-#include 
-
-#include 
-#include 
-#include 
-#include 
-#include 
-
-#include 
-#include 
-#include 
-#include 
-#include 
-
-
-int bsc_vty_go_parent(struct vty *vty)
-{
-   switch (vty->node) {
-   case GSMNET_NODE:
-   vty->node = CONFIG_NODE;
-   vty->index = NULL;
-   break;
-   case BTS_NODE:
-   vty->node = GSMNET_NODE;
-   {
-   /* set vty->index correctly ! */
-   struct gsm_bts *bts = vty->index;
-   vty->index = bts->network;
-   vty->index_sub = NULL;
-   }
-   break;
-   case TRX_NODE:
-   vty->node = BTS_NODE;
-   {
-   /* set vty->index correctly ! */
-   struct gsm_bts_trx *trx = vty->index;
-   vty->index = trx->bts;
-   vty->index_sub = &trx->bts->description;
-   }
-   break;
-   case TS_NODE:
-   vty->node = TRX_NODE;
-   {
-   /* set vty->index correctly ! */
-   struct gsm_bts_trx_ts *ts = vty->index;
-   vty->index = ts->trx;
-   vty->index_sub = &ts->trx->description;
-   }
-   break;
-   case OML_NODE:
-   case OM2K_NODE:
-   vty->node = ENABLE_NODE;
-   /* NOTE: this only works because it's not part of the config
-* tree, where outer commands are searched via vty_go_parent()
-* and only (!) executed when a matching one is found.
-*/
-   talloc_free(vty->index);
-   vty->index = NULL;
-   break;
-   case OM2K_CON_GROUP_NODE:
-   vty->node = BTS_NODE;
-   {
-   struct con_group *cg = vty->index;
-   struct gsm_bts *bts = cg->bts;
-   vty->index = bts;
-