mirror of https://gerrit.osmocom.org/libosmocore
utils: add helper wrapper for osmo_strlcpy()
Add wrapper for osmo_strlcpy() which uses sizeof() to automatically determine buffer's size and use it for GSMTAP logging. This is pretty common use case for osmo_strlcpy() so it's a good idea to save some typing by using generic define. Related: OS#2864 Change-Id: I03d0d3d32a8d572ad573d03c603e14cdc27a3f7b
This commit is contained in:
parent
f1076ed75a
commit
18c014de67
|
@ -26,6 +26,9 @@
|
|||
/*! Number of bytes necessary to store given BITS */
|
||||
#define OSMO_BYTES_FOR_BITS(BITS) ((BITS + 8 - 1) / 8)
|
||||
|
||||
/*! Copy a C-string into a sized buffer using sizeof to detect buffer's size */
|
||||
#define OSMO_STRLCPY_ARRAY(array, src) osmo_strlcpy(array, src, sizeof(array))
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
|
|
|
@ -81,17 +81,16 @@ static void _gsmtap_raw_output(struct log_target *target, int subsys,
|
|||
|
||||
/* Logging header */
|
||||
golh = (struct gsmtap_osmocore_log_hdr *) msgb_put(msg, sizeof(*golh));
|
||||
osmo_strlcpy(golh->proc_name, target->tgt_gsmtap.ident,
|
||||
sizeof(golh->proc_name));
|
||||
OSMO_STRLCPY_ARRAY(golh->proc_name, target->tgt_gsmtap.ident);
|
||||
if (subsys_name)
|
||||
osmo_strlcpy(golh->subsys, subsys_name+1, sizeof(golh->subsys));
|
||||
OSMO_STRLCPY_ARRAY(golh->subsys, subsys_name + 1);
|
||||
else
|
||||
golh->subsys[0] = '\0';
|
||||
|
||||
/* strip all leading path elements from file, if any. */
|
||||
file_basename = strrchr(file, '/');
|
||||
file = (file_basename && file_basename[1])? file_basename + 1 : file;
|
||||
osmo_strlcpy(golh->src_file.name, file, sizeof(golh->src_file.name));
|
||||
OSMO_STRLCPY_ARRAY(golh->src_file.name, file);
|
||||
golh->src_file.line_nr = osmo_htonl(line);
|
||||
golh->level = level;
|
||||
/* we always store the timestamp in the message, irrespective
|
||||
|
|
Loading…
Reference in New Issue