This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Neels Hofmeyr gerrit-no-reply at lists.osmocom.orgNeels Hofmeyr has submitted this change and it was merged. ( https://gerrit.osmocom.org/11114 ) Change subject: add tests/vty: VTY UI transcript testing ...................................................................... add tests/vty: VTY UI transcript testing Add ss7_asp_vty_test, a shim test program with the sole purpose of exposing the cs7 VTY nodes. Add ss7_asp_test.vty, transcript for verifying VTY nodes using above program. Add --enable-external-tests to configure. Run jenkins.sh with --enable-external-tests. Change-Id: I6a28684fa24d6e7de568623444297028eba2ab8c --- M configure.ac M contrib/jenkins.sh M tests/Makefile.am A tests/vty/Makefile.am A tests/vty/ss7_asp_test.vty A tests/vty/ss7_asp_vty_test.c 6 files changed, 621 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/configure.ac b/configure.ac index af64bc0..7dfb266 100644 --- a/configure.ac +++ b/configure.ac @@ -113,6 +113,21 @@ [AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])]) AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$with_systemdsystemunitdir" != "xno"]) +AC_ARG_ENABLE([external_tests], + AC_HELP_STRING([--enable-external-tests], + [Include the VTY/CTRL tests in make check [default=no]]), + [enable_ext_tests="$enableval"],[enable_ext_tests="no"]) +if test "x$enable_ext_tests" = "xyes" ; then + AM_PATH_PYTHON + AC_CHECK_PROG(OSMOTESTEXT_CHECK,osmo_verify_transcript_vty.py,yes) + if test "x$OSMOTESTEXT_CHECK" != "xyes" ; then + AC_MSG_ERROR([Please install git://osmocom.org/python/osmo-python-tests to run the VTY/CTRL tests.]) + fi +fi +AC_MSG_CHECKING([whether to enable VTY/CTRL tests]) +AC_MSG_RESULT([$enable_ext_tests]) +AM_CONDITIONAL(ENABLE_EXT_TESTS, test "x$enable_ext_tests" = "xyes") + AC_MSG_RESULT([CFLAGS="$CFLAGS"]) AC_MSG_RESULT([CPPFLAGS="$CPPFLAGS"]) @@ -133,6 +148,7 @@ tests/m2ua/Makefile tests/xua/Makefile tests/ss7/Makefile + tests/vty/Makefile examples/Makefile stp/Makefile doc/Makefile diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index d15cebe..a417a9e 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -36,9 +36,10 @@ set -x autoreconf --install --force -./configure --enable-sanitize --enable-werror +./configure --enable-sanitize --enable-werror --enable-external-tests $MAKE $PARALLEL_MAKE -$MAKE distcheck \ +DISTCHECK_CONFIGURE_FLAGS="--enable-external-tests" \ + $MAKE distcheck \ || cat-testlogs.sh osmo-clean-workspace.sh diff --git a/tests/Makefile.am b/tests/Makefile.am index 70e8a00..34bba67 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,4 +1,4 @@ -SUBDIRS = xua sccp mtp m2ua ss7 +SUBDIRS = xua sccp mtp m2ua ss7 vty # The `:;' works around a Bash 3.2 bug when the output is not writeable. $(srcdir)/package.m4: $(top_srcdir)/configure.ac diff --git a/tests/vty/Makefile.am b/tests/vty/Makefile.am new file mode 100644 index 0000000..28e9dc2 --- /dev/null +++ b/tests/vty/Makefile.am @@ -0,0 +1,32 @@ +AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include -Wall +AM_CFLAGS=-Wall $(LIBOSMOCORE_CFLAGS) $(LIBOSMOVTY_CFLAGS) + +AM_LDFLAGS = -static +LDADD = $(top_builddir)/src/libosmo-sigtran.la \ + $(LIBOSMOCORE_LIBS) $(LIBOSMOVTY_LIBS) $(LIBOSMONETIF_LIBS) $(LIBSCTP_LIBS) + +EXTRA_DIST = ss7_asp_test.vty + +noinst_PROGRAMS = ss7_asp_vty_test + +ss7_asp_vty_test_SOURCES = ss7_asp_vty_test.c + +if ENABLE_EXT_TESTS +ext-tests: + $(MAKE) vty-test +else +ext-tests: + echo "Not running python-based external tests (determined at configure-time)" +endif + +# To update the VTY script from current application behavior, +# pass -u to osmo_verify_transcript_vty.py by doing: +# make vty-test U=-u +vty-test: ss7_asp_vty_test + osmo_verify_transcript_vty.py -v \ + -p 42043 \ + -r "$(builddir)/ss7_asp_vty_test" \ + $(U) $(srcdir)/ss7_asp_*.vty + +check-local: + $(MAKE) $(AM_MAKEFLAGS) ext-tests diff --git a/tests/vty/ss7_asp_test.vty b/tests/vty/ss7_asp_test.vty new file mode 100644 index 0000000..fc46cff --- /dev/null +++ b/tests/vty/ss7_asp_test.vty @@ -0,0 +1,350 @@ +ss7_asp_vty_test> list +... !show cs7 + show cs7 instance <0-15> users + show cs7 (sua|m3ua|ipa) [<0-65534>] + show cs7 instance <0-15> asp + show cs7 instance <0-15> as (active|all|m3ua|sua) + show cs7 instance <0-15> sccp users + show cs7 instance <0-15> sccp ssn <0-65535> + show cs7 instance <0-15> sccp connections +... !show cs7 + +ss7_asp_vty_test> enable +ss7_asp_vty_test# list +... !show cs7 + show cs7 instance <0-15> users + show cs7 (sua|m3ua|ipa) [<0-65534>] + show cs7 instance <0-15> asp + show cs7 instance <0-15> as (active|all|m3ua|sua) + show cs7 instance <0-15> sccp users + show cs7 instance <0-15> sccp ssn <0-65535> + show cs7 instance <0-15> sccp connections +... !show cs7 + +ss7_asp_vty_test# show ? +... + cs7 ITU-T Signaling System 7 +... + +ss7_asp_vty_test# show cs7 ? + instance An instance of the SS7 stack + sua SCCP User Adaptation + m3ua MTP3 User Adaptation + ipa IPA Multiplex (SCCP Lite) + +ss7_asp_vty_test# show cs7 m3ua ? + [<0-65534>] Port Number + +ss7_asp_vty_test# show cs7 instance ? + <0-15> An instance of the SS7 stack + +ss7_asp_vty_test# show cs7 instance 0 ? + users User Table + asp Application Server Process (ASP) + as Application Server (AS) + sccp Signaling Connection Control Part + +ss7_asp_vty_test# show cs7 instance 0 as ? + active Display all active ASs + all Display all ASs (default) + m3ua Display all m3ua ASs + sua Display all SUA ASs + +ss7_asp_vty_test# show cs7 instance 0 sccp ? + users Show List of SCCP Users registered + ssn Show List of SCCP Users registered + connections Show List of SCCP Users registered + +ss7_asp_vty_test# show cs7 instance 0 sccp ssn ? + <0-65535> + +ss7_asp_vty_test# configure terminal +ss7_asp_vty_test(config)# cs7 instance 0 + +ss7_asp_vty_test(config-cs7)# list +... + description .TEXT + network-indicator (international | national | reserved | spare) + point-code POINT_CODE + point-code format <1-24> [<1-23>] [<1-22>] + point-code format default + point-code delimiter (default|dash) + xua rkm routing-key-allocation (static-only|dynamic-permitted) + asp NAME <0-65535> <0-65535> (sua|m3ua|ipa) + no asp NAME + as NAME (sua|m3ua|ipa) + no as NAME + show cs7 instance <0-15> sccp-addressbook + sccp-address NAME + no sccp-address NAME + +ss7_asp_vty_test(config-cs7)# ? +... + description Save human-readable description of the object + network-indicator Configure the Network Indicator + point-code Configure the local Point Code + xua SIGTRAN xxxUA related + asp Configure Application Server Process + no Negate a command or set its defaults + as Configure an Application Server + sccp-address Create/Modify an SCCP addressbook entry + +ss7_asp_vty_test(config-cs7)# description ? + TEXT Text until the end of the line + +ss7_asp_vty_test(config-cs7)# network-indicator ? + international International Network + national National Network + reserved Reserved Network + spare Spare Network + +ss7_asp_vty_test(config-cs7)# point-code ? + POINT_CODE Point Code + format Configure Point Code Format + delimiter Configure Point Code Delimiter + +ss7_asp_vty_test(config-cs7)# point-code format ? + <1-24> Length of first PC component + default Default Point Code Format (3.8.3) +ss7_asp_vty_test(config-cs7)# point-code format 1 ? + [<1-23>] Length of second PC component +ss7_asp_vty_test(config-cs7)# point-code format 1 1 ? + [<1-22>] Length of third PC component + +ss7_asp_vty_test(config-cs7)# point-code delimiter ? + default Use dot as delimiter + dash User dash as delimiter + +ss7_asp_vty_test(config-cs7)# xua ? + rkm Routing Key Management +ss7_asp_vty_test(config-cs7)# xua rkm ? + routing-key-allocation Routing Key Management Allocation Policy +ss7_asp_vty_test(config-cs7)# xua rkm routing-key-allocation ? + static-only Only static (pre-confgured) Routing Keys permitted + dynamic-permitted Dynamically allocate Routing Keys for what ASPs request + +ss7_asp_vty_test(config-cs7)# asp ? + NAME Name of ASP +ss7_asp_vty_test(config-cs7)# asp foo ? + <0-65535> Remote SCTP port number +ss7_asp_vty_test(config-cs7)# asp foo 0 ? + <0-65535> Local SCTP port number +ss7_asp_vty_test(config-cs7)# asp foo 0 0 ? + sua SCCP User Adaptation + m3ua MTP3 User Adaptation + ipa IPA Multiplex (SCCP Lite) + +ss7_asp_vty_test(config-cs7)# as ? + NAME Name of the Application Server +ss7_asp_vty_test(config-cs7)# as foo ? + sua SCCP User Adaptation + m3ua MTP3 User Adaptation + ipa IPA Multiplex (SCCP Lite) + +ss7_asp_vty_test(config-cs7)# sccp-address ? + NAME Name of the SCCP Address + +ss7_asp_vty_test(config-cs7)# no ? + asp Disable Application Server Process + as Disable Application Server + sccp-address Delete an SCCP addressbook entry +ss7_asp_vty_test(config-cs7)# no asp ? + NAME Name of ASP +ss7_asp_vty_test(config-cs7)# no as ? + NAME Name of AS +ss7_asp_vty_test(config-cs7)# no sccp-address ? + NAME Name of the SCCP Address + +ss7_asp_vty_test(config-cs7)# sccp-address foo +ss7_asp_vty_test(config-cs7-sccpaddr)# list +... + no point-code + no subsystem-number + no global-title + routing-indicator (GT|PC|IP) + point-code POINT_CODE + subsystem-number <0-4294967295> + global-title +ss7_asp_vty_test(config-cs7-sccpaddr)# ? +... + no Negate a command or set its defaults + routing-indicator Add Routing Indicator + point-code Add point-code Number + subsystem-number Add Subsystem Number + global-title Add/Modify Global Title + +ss7_asp_vty_test(config-cs7-sccpaddr)# point-code 1.2.3 + +ss7_asp_vty_test(config-cs7-sccpaddr)# do show cs7 instance 0 sccp addressbook +% Unknown command. +ss7_asp_vty_test(config-cs7-sccpaddr)# exit + +ss7_asp_vty_test(config-cs7)# sccp-address foobarfoobarfoobarfoobarfoobarfoobar +Error: SCCP address name to long: 'foobarfoobarfoobarfoobarfoobarfoobar' +% Command incomplete. + +ss7_asp_vty_test(config-cs7)# exit +ss7_asp_vty_test(config)# cs7 instance 1 +ss7_asp_vty_test(config-cs7)# sccp-address foo +Error: SCCP address name already used in ss7 instance 0: 'foo' +% Command incomplete. +ss7_asp_vty_test(config-cs7)# sccp-address bar +ss7_asp_vty_test(config-cs7-sccpaddr)# point-code 1.2.3 +ss7_asp_vty_test(config-cs7-sccpaddr)# exit +ss7_asp_vty_test(config-cs7)# exit +ss7_asp_vty_test(config)# no cs7 instance 1 +% Unknown command. + +ss7_asp_vty_test(config)# cs7 instance 0 + +ss7_asp_vty_test(config-cs7)# asp my-asp 12345 54321 m3ua +ss7_asp_vty_test(config-cs7-asp)# list +... + description .TEXT + remote-ip A.B.C.D + local-ip A.B.C.D + qos-class <0-255> + block + shutdown + +ss7_asp_vty_test(config-cs7-asp)# ? +... + description Save human-readable description of the object + remote-ip Specify Remote IP Address of ASP + local-ip Specify Local IP Address from which to contact ASP + qos-class Specify QoS Class of ASP + block Allows a SCTP Association with ASP, but doesn't let it become active + shutdown Terminates SCTP association; New associations will be rejected + +ss7_asp_vty_test(config-cs7-asp)# remote-ip 127.0.0.200 +ss7_asp_vty_test(config-cs7-asp)# local-ip 127.0.0.100 +ss7_asp_vty_test(config-cs7-asp)# do show cs7 instance 0 asp + Effect Primary +ASP Name AS Name State Type Rmt Port Remote IP Addr SCTP +------------ ------------ ------------- ---- -------- --------------- ---------- +my-asp ? uninitialized m3ua 12345 127.0.0.200 +ss7_asp_vty_test(config-cs7-asp)# exit + +ss7_asp_vty_test(config-cs7)# as my-ass m3ua +ss7_asp_vty_test(config-cs7-as)# list +... + description .TEXT + asp NAME + no asp NAME + traffic-mode (broadcast | loadshare | roundrobin | override) + recovery-timeout <1-2000> + qos-class <0-255> + routing-key RCONTEXT DPC + routing-key RCONTEXT DPC si (aal2|bicc|b-isup|h248|isup|sat-isup|sccp|tup) + routing-key RCONTEXT DPC ssn SSN + routing-key RCONTEXT DPC si (aal2|bicc|b-isup|h248|isup|sat-isup|sccp|tup) ssn SSN + point-code override dpc PC + +ss7_asp_vty_test(config-cs7-as)# ? +... + description Save human-readable description of the object + asp Specify that a given ASP is part of this AS + no Negate a command or set its defaults + traffic-mode Specifies traffic mode of operation of the ASP within the AS + recovery-timeout Specifies the recovery timeout value in milliseconds + qos-class Specity QoS Class of AS + routing-key Define a routing key + point-code Point Code Specific Features + +ss7_asp_vty_test(config-cs7-as)# no ? + asp Specify ASP to be removed from this AS + +ss7_asp_vty_test(config-cs7-as)# do show cs7 instance 0 as all + Routing Routing Key Cic Cic +AS Name State Context Dpc Si Opc Ssn Min Max +------------ ------------ ---------- ------------- ---- ------------- --- ----- ----- +my-ass AS_DOWN 0 0.0.0 + +ss7_asp_vty_test(config-cs7-as)# do show cs7 instance 0 as active + Routing Routing Key Cic Cic +AS Name State Context Dpc Si Opc Ssn Min Max +------------ ------------ ---------- ------------- ---- ------------- --- ----- ----- +my-ass AS_DOWN 0 0.0.0 + +ss7_asp_vty_test(config-cs7-as)# do show cs7 instance 0 as sua + Routing Routing Key Cic Cic +AS Name State Context Dpc Si Opc Ssn Min Max +------------ ------------ ---------- ------------- ---- ------------- --- ----- ----- + +ss7_asp_vty_test(config-cs7-as)# do show cs7 instance 0 as m3ua + Routing Routing Key Cic Cic +AS Name State Context Dpc Si Opc Ssn Min Max +------------ ------------ ---------- ------------- ---- ------------- --- ----- ----- +my-ass AS_DOWN 0 0.0.0 + +ss7_asp_vty_test(config-cs7-as)# asp my-asp +ss7_asp_vty_test(config-cs7-as)# routing-key 0 3.2.1 + +ss7_asp_vty_test(config-cs7-as)# do show cs7 instance 0 asp + Effect Primary +ASP Name AS Name State Type Rmt Port Remote IP Addr SCTP +------------ ------------ ------------- ---- -------- --------------- ---------- +my-asp ? ASP_DOWN m3ua 12345 127.0.0.200 + +ss7_asp_vty_test(config-cs7-as)# exit +ss7_asp_vty_test(config-cs7)# do show cs7 instance 0 asp + Effect Primary +ASP Name AS Name State Type Rmt Port Remote IP Addr SCTP +------------ ------------ ------------- ---- -------- --------------- ---------- +my-asp ? ASP_DOWN m3ua 12345 127.0.0.200 + +ss7_asp_vty_test(config-cs7)# exit + + +ss7_asp_vty_test(config)# do show cs7 instance 0 asp + Effect Primary +ASP Name AS Name State Type Rmt Port Remote IP Addr SCTP +------------ ------------ ------------- ---- -------- --------------- ---------- +my-asp ? ASP_DOWN m3ua 12345 127.0.0.200 + +ss7_asp_vty_test(config)# do show cs7 instance 0 as all + Routing Routing Key Cic Cic +AS Name State Context Dpc Si Opc Ssn Min Max +------------ ------------ ---------- ------------- ---- ------------- --- ----- ----- +my-ass AS_DOWN 0 3.2.1 + + + +ss7_asp_vty_test(config)# show running-config +... +cs7 instance 1 + sccp-address bar + routing-indicator PC + point-code 1.2.3 +cs7 instance 0 + asp my-asp 12345 54321 m3ua + local-ip 127.0.0.100 + remote-ip 127.0.0.200 + as my-ass m3ua + asp my-asp + routing-key 0 3.2.1 + sccp-address foo + routing-indicator PC + point-code 1.2.3 +end + +ss7_asp_vty_test(config)# do show cs7 instance 0 users + +ss7_asp_vty_test(config)# do show cs7 m3ua + +ss7_asp_vty_test(config)# cs7 instance 0 +ss7_asp_vty_test(config-cs7)# no asp unknown-asp +No ASP named 'unknown-asp' found + +ss7_asp_vty_test(config-cs7)# no asp my-asp + +ss7_asp_vty_test(config-cs7)# do show cs7 instance 0 asp + Effect Primary +ASP Name AS Name State Type Rmt Port Remote IP Addr SCTP +------------ ------------ ------------- ---- -------- --------------- ---------- + +ss7_asp_vty_test(config-cs7)# do show cs7 instance 0 as all + Routing Routing Key Cic Cic +AS Name State Context Dpc Si Opc Ssn Min Max +------------ ------------ ---------- ------------- ---- ------------- --- ----- ----- +my-ass AS_DOWN 0 3.2.1 diff --git a/tests/vty/ss7_asp_vty_test.c b/tests/vty/ss7_asp_vty_test.c new file mode 100644 index 0000000..6918df4 --- /dev/null +++ b/tests/vty/ss7_asp_vty_test.c @@ -0,0 +1,219 @@ +/* test program with a vty interface to test VTY node behavior */ +/* + * (C) 2018 by sysmocom - s.f.m.c. GmbH <info at sysmocom.de> + * All Rights Reserved + * + * Author: Neels Hofmeyr <neels at hofmeyr.de> + * + * 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. + * + */ + +#define _GNU_SOURCE +#include <getopt.h> + +#include <signal.h> + +#include <osmocom/core/logging.h> +#include <osmocom/core/utils.h> +#include <osmocom/core/application.h> + +#include <osmocom/vty/command.h> +#include <osmocom/vty/logging.h> +#include <osmocom/vty/misc.h> +#include <osmocom/vty/telnet_interface.h> + +#include <stdlib.h> + +#include <osmocom/sigtran/osmo_ss7.h> +#include <osmocom/sigtran/sccp_sap.h> + +void *root_ctx = NULL; + +const struct log_info log_info = { +}; + +static void print_help() +{ + printf( "options:\n" + " -h --help this text\n" + " -d --debug MASK Enable debugging (e.g. -d DRSL:DOML:DLAPDM)\n" + " -D --daemonize For the process into a background daemon\n" + " -c --config-file Specify the filename of the config file\n" + " -s --disable-color Don't use colors in stderr log output\n" + " -T --timestamp Prefix every log line with a timestamp\n" + " -V --version Print version information and exit\n" + " -e --log-level Set a global log-level\n" + ); +} + +static struct { + const char *config_file; + int daemonize; +} cmdline_config = {}; + +static void handle_options(int argc, char **argv) +{ + while (1) { + int option_idx = 0, c; + static const struct option long_options[] = { + { "help", 0, 0, 'h' }, + { "debug", 1, 0, 'd' }, + { "daemonize", 0, 0, 'D' }, + { "config-file", 1, 0, 'c' }, + { "disable-color", 0, 0, 's' }, + { "timestamp", 0, 0, 'T' }, + { "version", 0, 0, 'V' }, + { "log-level", 1, 0, 'e' }, + {} + }; + + c = getopt_long(argc, argv, "hc:d:Dc:sTVe:", + long_options, &option_idx); + if (c == -1) + break; + + switch (c) { + case 'h': + print_help(); + exit(0); + case 's': + log_set_use_color(osmo_stderr_target, 0); + break; + case 'd': + log_parse_category_mask(osmo_stderr_target, optarg); + break; + case 'D': + cmdline_config.daemonize = 1; + break; + case 'c': + cmdline_config.config_file = optarg; + break; + case 'T': + log_set_print_timestamp(osmo_stderr_target, 1); + break; + case 'e': + log_set_log_level(osmo_stderr_target, atoi(optarg)); + break; + case 'V': + print_version(1); + exit(0); + break; + default: + /* catch unknown options *as well as* missing arguments. */ + fprintf(stderr, "Error in command line options. Exiting.\n"); + exit(-1); + } + } +} + +static int quit = 0; + +static void signal_handler(int signal) +{ + fprintf(stdout, "signal %u received\n", signal); + + switch (signal) { + case SIGINT: + case SIGTERM: + quit++; + break; + case SIGABRT: + osmo_generate_backtrace(); + /* in case of abort, we want to obtain a talloc report + * and then return to the caller, who will abort the process */ + case SIGUSR1: + talloc_report(tall_vty_ctx, stderr); + talloc_report_full(root_ctx, stderr); + break; + case SIGUSR2: + talloc_report_full(tall_vty_ctx, stderr); + break; + default: + break; + } +} + +static struct vty_app_info vty_info = { + .name = "ss7_asp_vty_test", + .version = PACKAGE_VERSION, + .go_parent_cb = osmo_ss7_vty_go_parent, +}; + +int main(int argc, char **argv) +{ + int rc; + + root_ctx = talloc_named_const(NULL, 0, "ss7_asp_vty_test"); + + vty_info.tall_ctx = root_ctx; + vty_init(&vty_info); + + osmo_init_logging2(root_ctx, &log_info); + logging_vty_add_cmds(&log_info); + + osmo_ss7_init(); + osmo_ss7_vty_init_asp(root_ctx); + osmo_sccp_vty_init(); + + handle_options(argc, argv); + + osmo_talloc_vty_add_cmds(); + + log_set_print_category(osmo_stderr_target, 1); + log_set_print_category_hex(osmo_stderr_target, 0); + log_set_print_level(osmo_stderr_target, 1); + log_set_print_filename2(osmo_stderr_target, LOG_FILENAME_NONE); + + if (cmdline_config.config_file) { + rc = vty_read_config_file(cmdline_config.config_file, NULL); + if (rc < 0) { + LOGP(DLGLOBAL, LOGL_FATAL, "Failed to parse the config file: '%s'\n", + cmdline_config.config_file); + return 1; + } + } + + rc = telnet_init_dynif(root_ctx, NULL, vty_get_bind_addr(), 42043); + if (rc < 0) + return 2; + + signal(SIGINT, &signal_handler); + signal(SIGTERM, &signal_handler); + signal(SIGABRT, &signal_handler); + signal(SIGUSR1, &signal_handler); + signal(SIGUSR2, &signal_handler); + osmo_init_ignore_signals(); + + if (cmdline_config.daemonize) { + rc = osmo_daemonize(); + if (rc < 0) { + perror("Error during daemonize"); + return 6; + } + } + + while (!quit) { + log_reset_context(); + osmo_select_main(0); + } + + log_fini(); + + talloc_free(root_ctx); + talloc_free(tall_vty_ctx); + + return 0; +} -- To view, visit https://gerrit.osmocom.org/11114 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I6a28684fa24d6e7de568623444297028eba2ab8c Gerrit-Change-Number: 11114 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr <nhofmeyr at sysmocom.de> Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org> Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr <nhofmeyr at sysmocom.de> -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20180927/d80a59bc/attachment.htm>