diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2013-08-08 12:38:52 +0200 |
---|---|---|
committer | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2013-08-08 14:25:09 +0200 |
commit | 6bfa7445fca074fdf94707681d93e92ec0993bbd (patch) | |
tree | 308ad534d0593808982294563d7f3eb6c13bf938 /src/gsm | |
parent | 94b2f64ae735b85e7b7c42a76b5456dd09e00b2b (diff) |
encoding: Provide an overload for the gsm_7bit_encode and a simple test
This is required for encoding the SMS header using the alpha numeric
rules.
Reviewed-by: Jacob Erlbeck <jerlbeck@sysmocom.de>
Diffstat (limited to 'src/gsm')
-rw-r--r-- | src/gsm/gsm_utils.c | 10 | ||||
-rw-r--r-- | src/gsm/libosmogsm.map | 1 |
2 files changed, 9 insertions, 2 deletions
diff --git a/src/gsm/gsm_utils.c b/src/gsm/gsm_utils.c index 9569cf32..54b965e2 100644 --- a/src/gsm/gsm_utils.c +++ b/src/gsm/gsm_utils.c @@ -1,6 +1,6 @@ /* * (C) 2008 by Daniel Willmann <daniel@totalueberwachung.de> - * (C) 2009 by Holger Hans Peter Freyther <zecke@selfish.org> + * (C) 2009,2013 by Holger Hans Peter Freyther <zecke@selfish.org> * (C) 2009-2010 by Harald Welte <laforge@gnumonks.org> * (C) 2010-2012 by Nico Golde <nico@ngolde.de> * @@ -250,12 +250,18 @@ int gsm_septets2octets(uint8_t *result, const uint8_t *rdata, uint8_t septet_len /* GSM 03.38 6.2.1 Character packing */ int gsm_7bit_encode(uint8_t *result, const char *data) { + int out; + return gsm_7bit_encode_oct(result, data, &out); +} + +int gsm_7bit_encode_oct(uint8_t *result, const char *data, int *octets) +{ int y = 0; /* prepare for the worst case, every character expanding to two bytes */ uint8_t *rdata = calloc(strlen(data) * 2, sizeof(uint8_t)); y = gsm_septet_encode(rdata, data); - gsm_septets2octets(result, rdata, y, 0); + *octets = gsm_septets2octets(result, rdata, y, 0); free(rdata); diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index b2278f15..8a020dbd 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -134,6 +134,7 @@ gsm48_rr_att_tlvdef; gsm_7bit_decode; gsm_7bit_decode_hdr; gsm_7bit_encode; +gsm_7bit_encode_oct; gsm_arfcn2band; gsm_arfcn2freq10; |