diff options
author | Daniel Willmann <daniel@totalueberwachung.de> | 2010-01-11 13:50:44 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2010-01-14 21:52:34 +0100 |
commit | 604d851b89d2d62f024223d333c833ebebd42060 (patch) | |
tree | 6ef9dc20f000d0ba7e4d7d0d57150caebcf5a0da | |
parent | f15c276382a10ae6634694ed0cde06fdea0606cb (diff) |
Register GSM_BTS_TYPE_UNKNOWN in bsc_hack.c
The way the VTY configuration sytem works is that it first registers a
BTS of type GSM_BTS_TYPE_UNKNOWN and then sets the type correctly (after
encountering the type statement). This makes sure that registering a BTS
of type UNKNOWN succeeds.
-rw-r--r-- | openbsc/src/Makefile.am | 3 | ||||
-rw-r--r-- | openbsc/src/bsc_hack.c | 2 | ||||
-rw-r--r-- | openbsc/src/bts_unknown.c | 40 |
3 files changed, 44 insertions, 1 deletions
diff --git a/openbsc/src/Makefile.am b/openbsc/src/Makefile.am index aa50b8cbc..e18c35e18 100644 --- a/openbsc/src/Makefile.am +++ b/openbsc/src/Makefile.am @@ -12,7 +12,8 @@ libbsc_a_SOURCES = abis_rsl.c abis_nm.c gsm_data.c gsm_04_08_utils.c \ trau_frame.c trau_mux.c paging.c e1_config.c e1_input.c tlv_parser.c \ input/misdn.c input/ipaccess.c signal.c gsm_utils.c talloc.c \ talloc_ctx.c system_information.c bitvec.c rest_octets.c \ - rtp_proxy.c statistics.c bts_siemens_bs11.c bts_ipaccess_nanobts.c + rtp_proxy.c statistics.c bts_siemens_bs11.c bts_ipaccess_nanobts.c \ + bts_unknown.c libmsc_a_SOURCES = gsm_subscriber.c db.c telnet_interface.c \ mncc.c gsm_04_08.c gsm_04_11.c transaction.c \ diff --git a/openbsc/src/bsc_hack.c b/openbsc/src/bsc_hack.c index e7db3c733..7755726c9 100644 --- a/openbsc/src/bsc_hack.c +++ b/openbsc/src/bsc_hack.c @@ -178,6 +178,7 @@ static void db_sync_timer_cb(void *data) bsc_schedule_timer(&db_sync_timer, DB_SYNC_INTERVAL); } +extern int bts_model_unknown_init(void); extern int bts_model_bs11_init(void); extern int bts_model_nanobts_init(void); @@ -194,6 +195,7 @@ int main(int argc, char **argv) stderr_target = debug_target_create_stderr(); debug_add_target(stderr_target); + bts_model_unknown_init(); bts_model_bs11_init(); bts_model_nanobts_init(); diff --git a/openbsc/src/bts_unknown.c b/openbsc/src/bts_unknown.c new file mode 100644 index 000000000..1e604a9e4 --- /dev/null +++ b/openbsc/src/bts_unknown.c @@ -0,0 +1,40 @@ +/* Generic BTS - VTY code tries to allocate this BTS before type is known */ + +/* (C) 2010 by Daniel Willmann <daniel@totalueberwachung.de> + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +#include <sys/types.h> + +#include <openbsc/gsm_data.h> +#include <openbsc/tlv.h> +#include <openbsc/abis_nm.h> + +static struct gsm_bts_model model_unknown = { + .type = GSM_BTS_TYPE_UNKNOWN, + .nm_att_tlvdef = { + .def = { + }, + }, +}; + +int bts_model_unknown_init(void) +{ + return gsm_bts_model_register(&model_unknown); +} |