From c7223231b5398a00496d01609ff92875bf6a7b1b Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Thu, 2 May 2013 20:51:28 +0200 Subject: 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. --- src/gsm/gsm_utils.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/gsm/gsm_utils.c') 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 - * (C) 2009 by Holger Hans Peter Freyther + * (C) 2009,2013 by Holger Hans Peter Freyther * (C) 2009-2010 by Harald Welte * (C) 2010-2012 by Nico Golde * @@ -249,13 +249,19 @@ 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); -- cgit v1.2.3