Commit Graph

128 Commits

Author SHA1 Message Date
Holger Hans Peter Freyther 96af78650d misc: Look into the build directory for generated files
the bits/crc files are not inside the sourcedirectory but will end
in the build directory. Go and look there as well. This somehow
doesn't fail with make distcheck but when building for Yocto Dizzy.
2014-09-25 18:18:49 +02:00
Harald Welte fb84f325b8 logging: Add ability to save/print current log filters
This enables the persistent configuration of let's say
'log filter imsi 012345678' for a given log file in the config
file.
2014-08-25 10:09:42 +02:00
Harald Welte 336915aa0a prepare for 0.7.0 release 2014-08-21 15:53:20 +02:00
Holger Hans Peter Freyther eb55e6aa88 write_queue: Use EBADF instead of EBABDFD for portability
EBADFD is linux specific while EBADF is POSIX. Fix the build on
FreeBSD and use EBADF throughout the file.
2014-07-01 19:42:49 +02:00
Daniel Willmann 77ab2f723e vty: Avoid use-after-free in VTY telnet interface
If the read callback closes the connection conn is already freed so we
can't derefernce it. Instead return -EBADFD in the read function if it
closed the connection and check for that.
2014-06-22 16:57:22 +02:00
Holger Hans Peter Freyther 2c9168cf34 vty: Make vty_event dispatch signals and use it in the testcase
The testcase didn't work on Ubuntu 12.04 because vty_create will
directly call vty_event (e.g. not through the plt). This means
that the approach to override vty_event in the testcase failed.

Use the signal interface of libosmocore and make the testcase
use it. The signals can be generally useful as well.
2013-10-10 20:21:33 +02:00
Jacob Erlbeck b3657e1216 vty: Allow vty_go_parent() in all nodes.
This patch removes an assertion of node > CONFIG_NODE and changes
the function to handle all nodes properly.
For the sake of completeness, the generic 'exit' command
implementation is extended to work properly with all nodes, too.
2013-09-11 09:36:45 +02:00
Jacob Erlbeck 2349721d80 vty: Replace 'enum node_type' by 'int' for last_node
In this case the last_node variable may hold values that are not
in enum node_type, so int is used instead.
2013-09-10 11:04:00 +02:00
Jacob Erlbeck 0c987bd83b vty: Add vty_install_default() and use for the vty nodes
This adds the vty_install_default() function that is basically the
install_default() function plus the registration of the commands
'exit' and 'end'. The latter is only provided in subnodes of
ENABLED_NODE and CONFIG_NONE.

The VTY test program is extended to check these commands.

Ticket: OW#952
2013-09-08 10:49:52 +02:00
Jacob Erlbeck 7eed0538ae vty: Refactored vty_go_parent(), 'end' and 'exit'
Put all 'exit' logic into vty_go_parent() and replace the
implementations of 'exit' and 'end' by generic ones that use
vty_go_parent().
2013-09-08 10:49:03 +02:00
Jacob Erlbeck 2442e09658 vty: Rename is_config() to is_config_child()
The function is_config() returns 0 for CONFIG_NODE. Since that node
is a config node, the function is renamed to resolve this.
2013-09-08 10:33:24 +02:00
Jacob Erlbeck cd195fa267 vty: Support multi-char separators and end strings
In vty_cmd_string_from_valstr() include the real string lengths of
the sep and end arguments into the buffer size calculation.
2013-08-06 14:56:35 +02:00
Jacob Erlbeck ae15a2cac1 vty: Fix misusage of snprintf in vty/utils.c
Compiled with ubuntu 1204 (precise), where -Wformat-security is enabled by
-Wall.

Test yields ok, but the current implementation doesn't properly support
multi-character separators and end strings. So the test output is truncated.

Addresses:
utils.c: In function 'vty_cmd_string_from_valstr':
utils.c:84:2: warning: format not a string literal and no format arguments [-Wformat-security]
utils.c:84:2: warning: format not a string literal and no format arguments [-Wformat-security]
utils.c:108:2: warning: format not a string literal and no format arguments [-Wformat-security]
utils.c:108:2: warning: format not a string literal and no format arguments [-Wformat-security]
2013-08-06 14:56:30 +02:00
Holger Hans Peter Freyther 6a75d16c6d vty: Fix logically dead code in the description handling
The code most likely wanted to check the result of argv_concat.
To do this we need to dereference the dptr.

Logically dead code (DEADCODE)
dead_error_line: Execution cannot reach this statement "return 1;

Fixes: Coverity CID 1040675
2013-07-14 09:14:37 +02:00
Holger Hans Peter Freyther 047213b01e vty: Attempt to fix various meam leaks in the VTY lookup code
These routines were not freeing vectors used for the lookup. On
review it is fixing another path not detected by coverity.

The danger is a double free in tab completion now. It is difficult
to test this.

Fixes: Coverity CID 23037, CID 23038
2013-07-03 10:00:06 +02:00
Harald Welte 1a02cfc24d logging_vty: Fix segfault un unused entries in log_info_cat array of app 2013-03-19 10:37:39 +01:00
Harald Welte 6d2d4d688e logging_vty: Print 'log filter all' info in 'show logging vty'
When we print information about the current logging configuration,
it makes sense to also print information about the log filters.
2013-03-13 15:16:47 +01:00
Holger Hans Peter Freyther 45cdaa095a cygwin: Link many libraries with -no-undefined to create a dll
Only the Gb library relies on having undefined references to a
symbol that needs to be provided by the host application. For
all other libraries we can link with -no-undefined.
2013-03-03 10:10:07 +01:00
Katerina Barone-Adesi 3309a43ef5 Added a ring buffer log target to store the last N log messages.
The log target can be used via log alarms and show alarms.
Why? This feature was proposed/requested at
http://openbsc.osmocom.org/trac/wiki/Tasks/ErrorLogTarget
All messages use the same amount of space, prioritizing simplicity.
2013-02-27 15:13:45 +01:00
Holger Hans Peter Freyther efd2bd691f Revert "Added a ring buffer log target to store the last N log messages."
I noticed some more issues and it is the easiest to revert and include
the fixed version.

This reverts commit 73377229bb.
2013-02-27 14:51:33 +01:00
Katerina Barone-Adesi 73377229bb Added a ring buffer log target to store the last N log messages.
The log target can be used via log alarms and show alarms.
Why? This feature was proposed/requested at
http://openbsc.osmocom.org/trac/wiki/Tasks/ErrorLogTarget
All messages use the same amount of space, prioritizing simplicity.
2013-02-27 14:45:48 +01:00
Harald Welte d17aa59c3e VTY: don't show HIDDEN or DEPRECATED vty commands in ? completion
This hides HIDDEN or DEPRECATED commands from showing up when the
full list of commands is inquired with '?' at any given point in the
command tree.  Only if the hidden/deprecated command is already typed
in partially, then it will still tab-complete.
2013-02-12 11:11:34 +01:00
Harald Welte 80d30fe803 vty/command.c: Cosmetic cleanup
this is just changing some of the code to reduce the way too high level
of indentation and thus improve readability.
2013-02-12 11:08:57 +01:00
Sylvain Munaut 4d8eea48f2 vty: Do better filtering of arguments, optional args particularly
This is essentially http://patchwork.diac24.net/patch/271/ forward
ported to libosmovty

Original-by: Paul Jakma <paul@quagga.net>
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2013-01-03 22:34:26 +01:00
Sylvain Munaut 5689a3b744 build: Don't use the deprecated INCLUDES in the various Makefile.am
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2012-12-11 23:59:31 +01:00
Harald Welte 8ec7f901bb logging: Make sure to install standard "end" command in VTY node
When you are in the config-log VTY node, you expect "end" to work
like in any other sub-node of config.
2012-10-22 19:43:26 +02:00
Harald Welte 2da47f1d6b logging: Don't forget to save "logging filter all 1"
Prior to this fix, a persistent file or syslog log configuration
didn't work across an application re-start, as the
"logging filter all 1" was never saved and thus no messages were
logged.
2012-10-22 19:31:54 +02:00
Holger Hans Peter Freyther 314c010733 vty: Address compiler warning about the const qualifier
vty.c: In function 'vty_out_newline':
vty.c:294:12: warning: initialization discards 'const' qualifier from pointer target type [enabled by default]
2012-09-11 10:40:07 +02:00
Holger Hans Peter Freyther b321b93286 vty: Address compiler warning about tolower
Include ctype.h to have a declaration of tolower.

utils.c: In function 'vty_cmd_string_from_valstr':
utils.c:95:6: warning: implicit declaration of function 'tolower' [-Wimplicit-function-declaration]
2012-09-11 10:39:29 +02:00
Harald Welte fab0ae9b43 import vty_cmd_string_from_valstr() from osmo-bts
This function is able to generate a VTY help string based on an
array of 'struct value_string'.
2012-08-20 18:43:09 +02:00
Holger Hans Peter Freyther ea8f238f04 vty: Print the string using "%s", string to avoid security issues
The Mandriva GCC is more strict about handling format strings, the
copyright string might contain escape sequences and then any memory
could be read.
2012-08-02 21:26:02 +02:00
Holger Hans Peter Freyther c9b3e06d99 vty: Document the .TEXT of the description 2012-07-25 13:03:43 +02:00
Holger Hans Peter Freyther 8297c819e9 vty: Add xsd and a command that can generate the documentation.
When building the doxygen documentation do not remove the other
VTY documentation files in the doc/vty folder. Create a command
that can be installed to dump all nodes and commands as XML on
the given VTY. Create a schema for the XML file and a XSL-T script
that can merge the generated file with additional information.
2012-07-25 11:58:58 +02:00
Alexander Huemer e62651f220 correct inverted logic from commit f3ba8a 2012-07-11 11:00:02 +02:00
Diego Elio Pettenò c5f055f9e5 build: use LT_INIT(pic-only) instead of forcing -fPIC.
This actually allows for the user to override the decision and at the
same time supports compilers that might not be able to use -fPIC at
all.

Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
2012-06-30 22:01:44 +02:00
Diego Elio Pettenò f3ba8abc97 vty: avoid using a .data variable.
no_password_check was the only initialized, non-relocated data in the
set of libraries, inverting its logic let us keep it in .bss
(non-initialized data, which is mapped to the zero page).

Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
2012-06-30 22:01:44 +02:00
Harald Welte 2d52d10a52 add additional newline in vty welcome message 2012-06-16 17:01:29 +08:00
Harald Welte 8b0d5b3726 VTY: safe version of printing VTY welcome message
The old method used raw writes to the telnet FD, which is bad for
several reasons:
  a) we don't know if we can actually write that many bytes to the
     socket at the given time
  b) the socket is still in blocking mode, so we could stall the entire
     process
  c) there may be weird interaction with the buffered writes of the
     vty_out

Now, the print_welcome() functionality has moved to vty_hello() instead,
where we can use normal vty_out() in buffered mode.

This commit is expected to fix the garbled welcome message on arm-eglibc
targets.

It might still be a good idea to migrate the entire telnet interface to
libtelnet - but at some later time ;)
2012-06-03 12:44:38 +02:00
Sylvain Munaut dca7d2caaa doc: Fix the Doxygen section endings
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2012-04-18 21:53:23 +02:00
Holger Hans Peter Freyther 738f13395d vty: Add a function to write the current config to a file. 2012-03-28 17:53:27 +02:00
Sylvain Munaut a9efc12ccd vty/telnet: Add function to allow binding telnet interface to custom IP/Interface
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2012-03-01 22:33:20 +01:00
Andreas.Eversberg f948dbc442 vty: Fixed vty_down_level to move down from config nodes
When using ^D at config nodes above the CONFIG_NODE, the
go_parent_cb function is used to go down by one node. This
is equivalent to "exit" command.

Written-by: Andreas.Eversberg <jolly@eversberg.eu>
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2011-11-12 23:23:36 +01:00
Andreas.Eversberg dc3be0a653 vty/telnet_interface: Add telnet_exit function
This frees socket and pending connections

Written-by: Andreas Eversberg <jolly@eversberg.eu>
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2011-11-12 23:23:36 +01:00
Holger Hans Peter Freyther a4463fd23b vty: Provide documentation for all logging facilities
Document all facilities in the log syslog command.
2011-10-03 23:20:15 +02:00
Holger Hans Peter Freyther 146d1d3c35 vty: Provide logging set-log-mask, deprecate set log mask
There are no other commands on the set, log and mask level,
create a simple set-log-mask command and deprecate the old
way.
2011-10-03 23:20:15 +02:00
Harald Welte d38c8b88d7 doxygen: Add main page for all three libraries 2011-08-30 11:32:56 +02:00
Harald Welte e881b1b9eb doxygen: split VTY configuration in multiple files 2011-08-17 18:52:30 +02:00
Harald Welte 7acb30c69b doxygen: Add (partial) VTY API documentation 2011-08-17 17:14:12 +02:00
Harald Welte 2b32215fc3 telnet_interface: if we don't check for the return value, don't use ret 2011-07-16 12:03:46 +02:00
Harald Welte 9c3cbfb01e telnet_interface: get rid of 'const' warning 2011-07-16 12:03:46 +02:00
Harald Welte 95b2b47b26 get rid of non-ANSI function declarations missing (void)
Detected by Smatch
2011-07-16 12:03:46 +02:00
Harald Welte b62b04bbf3 vty: print actual application name rather than always OpenBSC on connect 2011-05-22 19:15:07 +02:00
Harald Welte 7533705ab1 libosmocore: bump library interface version to '1' for new osmo_ names 2011-05-08 14:35:40 +02:00
Pablo Neira Ayuso f7f89d0cfe select: use namespace prefix osmo_fd* and osmo_select*
Summary of changes:

s/struct bsc_fd/struct osmo_fd/g
s/bsc_register_fd/osmo_fd_register/g
s/bsc_unregister_fd/osmo_fd_unregister/g
s/bsc_select_main/osmo_select_main/g
2011-05-07 13:00:51 +02:00
Holger Hans Peter Freyther ff0670edf3 vty: Fix a memory leak in the vty description command
Before assigning a new string, free the previous one. This
assume that it was allocated with talloc which should be true
for the osmocom users.
2011-03-29 13:24:21 +02:00
Pablo Neira Ayuso 8341934844 include: reorganize headers file to include/osmocom/[gsm|core]
This patch moves all GSM-specific definitions to include/osmocom/gsm.
Moreover, the headers in include/osmocore/ have been moved to
include/osmocom/core.

This has been proposed by Harald Welte and Sylvain Munaunt.

Tested with `make distcheck'.

Signed-off-by: Pablo Neira Ayuso <pablo@gnumonks.org>
2011-03-23 18:09:28 +01:00
Pablo Neira Ayuso 04139f14b6 vty: integration with logging framework
The logging categories are registered by the applications, like
osmo-nitb, during startup. Thus, the VTY have to provide the logging
commands according to the logging categories that the application
has registered.

Before this patch, the VTY contained the logging categories
hardcoded. Thus, any change in the logging categories by the
application would not be shown by the VTY.

So far, this was not a problem because all applications used the
same logging categories. However, according to what Harald told
me, this may be a problem in the future.

This patch resolve the lack of integration between the logging
framework and the VTY by generating the VTY logging commands
from the logging categories registered.

Since this patch changes one function of the libosmocore API,
it follows another patch for the openbsc application to get in
sync with the new function layout.

I have reworked and renamed the functions:

 * log_vty_category_string()
 * log_vty_level_string()

to provide the new ones that generate the exact output that VTY
requires.

This patch does not release the memory allocated by
talloc_zero_size() to store the VTY strings for the commands
and the description. I found no exit function that can clean
up resources that were allocated.
2011-03-19 18:33:48 -03:00
Harald Welte de79cee5a6 LOGGING: Use host.app_info->name instead of FIXME
This should put a useful syslog identity in place.
2011-02-24 23:47:57 +01:00
Harald Welte 49cc32b0a3 vty: Revert Makefile.am change for libosmocore dependency 2011-02-19 16:10:51 +09:00
Harald Welte a62648b0b0 LOGGING: remove duplicated code between vty-logging and cfg-logging 2011-02-18 21:03:27 +01:00
Harald Welte 6b431033b3 LOGGING: Add missing 'nat' subsystem 2011-02-18 20:39:36 +01:00
Harald Welte 2822296ddb LOGGING: configure logging from the vty
We can now configure logging to (multiple) files, stderr and syslog
from the vty command line in a persistent way (config file)
2011-02-18 20:37:04 +01:00
Harald Welte 76e72abe32 LOGGING: Pass the log level down to the log target output function
This will be required for mapping osmocore log levels to syslog priorities.
2011-02-17 15:52:39 +01:00
Holger Hans Peter Freyther 549fbb8232 logging: Add isup,m2ua,pcap from the cellmgr.
This is something that we should generate dynamically from
the log_info as well. This is adding bits from the cellmgr_ng.
2011-01-22 23:21:26 +01:00
Sylvain Munaut 4a4f96d1f6 vty: Fix typo testing return value of bind
Thanks to playya__ (Dr. Fred) on IRC for pointing this out

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2011-01-03 22:19:40 +01:00
Harald Welte df327f6d81 Use the app_info->name instead of the hostname
This makes more sense in case you run BCS, SGSN and other components
on the same host.  Having multiple telnet sessions with the same
prompt can otherwise be confusing.
2010-12-24 15:10:14 +01:00
Holger Hans Peter Freyther 08aaded3b8 vty: Add functions to access index and node
It is easier to call these two functions from bindings than
wrapping the vty structure and figuring out the alignment of
the enum on all different ABIs.
2010-09-14 02:24:03 +08:00
Holger Hans Peter Freyther 2e228fc2af vty: Use the copyright string from the app_info. 2010-09-11 13:41:41 +08:00
Holger Hans Peter Freyther e25b18aa29 vty: Link osmovty to osmocore as it is using the symbols
Use SUBDIRS to build src first and the src/vty. We will need
to find the right way add the dependencies.
2010-09-11 03:58:37 +08:00
Holger Hans Peter Freyther 8304b1e3e9 vty: Everything <= CONFIG_NODE is not a child of config
The method should be renamed to is child of config node
as it was comparing if vty->node > CONFIG_NODE. This is
fixing an assert in go_to_parent as we tried to find a
parent for the CONFIG_NODE.
2010-09-04 11:22:45 +08:00
Holger Hans Peter Freyther 3e85e8dba9 vty: Handle nodes part of the lib in the lib, for the rest call the callback 2010-08-26 15:00:52 +08:00
Holger Hans Peter Freyther 8f09f01380 vty: Add a new callback to let code decide if it is a config node or not 2010-08-26 15:00:52 +08:00
Holger Hans Peter Freyther 50cfb780d2 vty: Move the assumption of the config nodes into a function
Move the assumption that something is a child of the CONFIG_NODE
into a new function. The next step will be to use something else
for that.
2010-08-26 15:00:52 +08:00
Andreas Eversberg 33f0fc3c95 [VTY] add support for numeric ranges with negative numbers
This enables us to do something like <-128-127> as a numeric range.
2010-07-13 13:50:39 +02:00
Harald Welte 544037700c add configure option '--disable-vty' to prevent building libosmovty 2010-05-29 11:49:51 +02:00
Harald Welte 237f6241f2 [VTY] Introduce "struct vty_app_info" for vty_init() function 2010-05-25 23:38:19 +02:00
Harald Welte 4ebdf74728 rename log_info to osmo_log_info to avoid namespace clash with app 2010-05-25 22:28:40 +02:00
Harald Welte 3fb0b6f26e Create libosmovty as library from OpenBSC VTY functions 2010-05-25 22:28:39 +02:00