aboutsummaryrefslogtreecommitdiffstats
path: root/src/utils.c
AgeCommit message (Collapse)AuthorFilesLines
2017-02-14osmo_hexparse: allow whitespace in parsed string, add ws testNeels Hofmeyr1-9/+22
This is particularly useful for hex dumps containing spaces found in a log (e.g. osmo-nitb authentication rand token), which can now be passed in quotes to osmo-auc-gen without having to edit the spaces away. Change-Id: Ib7af07f674a2d26c8569acdee98835fb3e626c45
2017-01-18doc: fix doxygen 'utils' group closing braceNeels Hofmeyr1-1/+2
osmo_strlcpy() was excluded from the group because the closing brace was above it. Change-Id: I6701261f5854342ac4cd4f2da62e49eb40362938
2017-01-15doc: clarify osmo_strlcpy() docNeels Hofmeyr1-5/+5
Stating that it 'truncates src' is misleading. Also clarify whether siz includes the space needed for the terminating NUL. Change-Id: I01c1a94408b471f7f54576178a60938bf9ee3261
2016-12-21doc: fix typo for osmo_hexparseNeels Hofmeyr1-1/+1
Change-Id: Ifc2b499792fda378c807c678b8e06630cb64d273
2016-11-26Introduce osmo_strlcpy() function so we can stop using strncpy()Harald Welte1-0/+22
I'm aware of the existing criticism on stlrcpy(), but I think it is still better than what we have now: stnrcpy(), sometimes with Coverity warnings and sometimes with a manual setting of the termination byte. The implementation follows the linux kernel strlcpy() which is claimed to be BSD compatible. We could of course link against libbsd on Linux instead, but I think it's reasonably small and simple to provide our own implementation. Future versions of libosmocore could use some autoconf magic and preprocessor macros to use the system-provided strlcpy() if it exists. Change-Id: Ifdc99b0e3b8631f1e771e58acaf9efb00a9cd493
2016-06-13add get_value_string_or_null() to handle unknown itemsNeels Hofmeyr1-3/+18
Add get_value_string_or_null() to return NULL in case the given value is not found in the list of strings, to be able to cleanly fall back to another list of strings. Absorb the lookup loop from get_value_string(). Context: in osmo-bts, I want to look up an RSL message name in rsl_msgt_names and fall back to rsl_ipac_msgt_names if not found, because the IPAC PDCH ACT and DEACT messages are sent in a standard ABIS_RSL_MDISC_DED_CHAN. In a subsequent commit, get_value_string_or_null() will be used by new rsl_or_ipac_msg_name(). Change-Id: I1fa3907e28d528d2758bc3eae9d19e6c1168f5e5 Reviewed-on: https://gerrit.osmocom.org/230 Reviewed-by: Harald Welte <laforge@gnumonks.org> Tested-by: Jenkins Builder
2016-06-13api doc: get_value_string(): mention composition in static bufferNeels Hofmeyr1-0/+4
Change-Id: I93dad98711ef69f8a1e196efa029a842a1ff5bd6 Reviewed-on: https://gerrit.osmocom.org/229 Reviewed-by: Harald Welte <laforge@gnumonks.org> Tested-by: Jenkins Builder
2016-05-05Import osmo_{encode,decode}_big_endian() from openbscHarald Welte1-0/+62
2015-09-23utils: add 'returns' doc to osmo_hexparse().Neels Hofmeyr1-0/+1
2015-04-11utils: Disable the weak symbol for darwinHolger Hans Peter Freyther1-1/+5
We should consider simply removing the alias as we have had several ABI changes since introducint the alias utils.c:223:23: error: only weak aliases are supported on darwin __attribute__((weak, alias("osmo_hexdump_nospc")));
2014-09-11add missing copyright statements to source code filesHarald Welte1-0/+23
Some source code files didn't have the usual copyright and licence statement at their top. I'm adding them baesed on information in the commitlog.
2014-01-02utils: Greatly improve performance of osmo_hexdump routinesNils O. SelÄsdal1-5/+13
In the osmo-bts and libosmo-abis code the hexdump routine is used for every incoming/outgoing packet (including voice frames) and the usage of snprintf showed up inside profiles. There is a semantic change when more than 4096 characters are used. The code will now truncate at byte boundaries (and not nibbles). Code: static const int lengths[] = { 23, 1000, 52 }; char buf[4096]; int i; for (i = 0; i < 30000; ++i) char *res = osmo_hexdump(buf, lengths[i & 3]); Results: before: after: real 0m3.233s real 0m0.085s user 0m3.212s user 0m0.084s sys 0m0.000s sys 0m0.000s
2013-07-04get_value_string: Null terminate after the call to snprintfHolger Hans Peter Freyther1-0/+1
It is impossible that the snprintf will fill the entire namebuf but just follow the idiom to make sure it is null terminated. Related: Coverity CID 1040676
2013-01-11add some missing doxygen annotation for libosmocore functionsHarald Welte1-1/+9
2012-04-18doc: Fix the Doxygen section endingsSylvain Munaut1-1/+1
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2011-11-19utils: Fix alias to weak alias to allow OSX compilationSylvain Munaut1-1/+1
Using a weak alias works just as good AFAICT. Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2011-11-11core/utils: Add a symbol alias for a previous typo for compatibilitySylvain Munaut1-0/+4
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2011-11-10utils: Fix a bad double osmo_ prefix for osmo_hexdump_nospcSylvain Munaut1-1/+1
Hopefully no project where using them it seems Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2011-08-17doxygen: add doxygen module 'utils'Harald Welte1-0/+51
2011-07-15osmo_hexdump: Fix segfault when input is too long.Holger Hans Peter Freyther1-0/+2
In snprinftf the size is a size_t (unsigned) in case we want to write more than we have available, len_remain will be < 0. This was spotted while removing hexdump from simtrace and comparing it to our implementation. int snprintf(char *str, size_t size, const char *format, ...);
2011-05-07utils: use namespace prefix osmo_*Pablo Neira Ayuso1-9/+9
Summary of changes: s/bcd2char/osmo_bcd2char/g s/char2bcd/osmo_char2bcd/g s/hexparse/osmo_hexparse/g s/hexdump/osmo_hexdump/g s/hexdump_nospc/osmo_hexdump_nospc/g s/ubit_dump/osmo_ubit_dump/g s/static_assert/osmo_static_assert/g
2011-03-23include: reorganize headers file to include/osmocom/[gsm|core]0.2.0Pablo Neira Ayuso1-1/+1
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-02-18LOGGING: configure logging from the vtyHarald Welte1-0/+22
We can now configure logging to (multiple) files, stderr and syslog from the vty command line in a persistent way (config file)
2011-02-08[utils] introduce ubit_dump to dump buffers of unpacked bitsHarald Welte1-1/+1
2011-02-08[utils] add 'bitdump' function for bitfieldsHarald Welte1-0/+30
2010-11-19utils: Fix typo. It is ascii.Holger Hans Peter Freyther1-1/+1
2010-07-30add new hexdump_nospc() function0.1.15Harald Welte1-2/+12
2010-07-30move hexdump() from logging.c to utils.cHarald Welte1-0/+19
2010-07-30Import 'hexparse' function from OpenBSC0.1.14Harald Welte1-0/+27
2010-03-25get_value_string(): return "unknown 0x..." instead of "unknown"Harald Welte1-1/+5
2010-03-04import bcd2char() and char2bcd() from OpenBSCHarald Welte1-0/+14
2010-03-01Import value_string utilities and some RSL stuff from OpenBSCHarald Welte1-0/+32