From d7ff30eb6240a8de3e6b07c73a9146f63fa8d961 Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Thu, 9 Jun 2011 21:48:49 +0200 Subject: misc: Move the bsc_parse_reg to libcommom and name it gsm_parse_reg Move the regexp parsing code from the NAT to libcommon as it will be used by the NAT and BSC code. This also adds the #include include to gsm_data. This header should be split up. --- openbsc/src/libcommon/gsm_data.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'openbsc/src/libcommon') diff --git a/openbsc/src/libcommon/gsm_data.c b/openbsc/src/libcommon/gsm_data.c index 3df69d69c..3cc0c13bc 100644 --- a/openbsc/src/libcommon/gsm_data.c +++ b/openbsc/src/libcommon/gsm_data.c @@ -420,3 +420,29 @@ int gsm48_ra_id_by_bts(uint8_t *buf, struct gsm_bts *bts) return gsm48_construct_ra(buf, &raid); } + +int gsm_parse_reg(void *ctx, regex_t *reg, char **str, int argc, const char **argv) +{ + int ret; + + ret = 0; + if (*str) { + talloc_free(*str); + *str = NULL; + } + regfree(reg); + + if (argc > 0) { + *str = talloc_strdup(ctx, argv[0]); + ret = regcomp(reg, argv[0], 0); + + /* handle compilation failures */ + if (ret != 0) { + talloc_free(*str); + *str = NULL; + } + } + + return ret; +} + -- cgit v1.2.3