introduce DECLARE_SMS_ADDR_STR()

Introduce DECLARE_SMS_ADDR_STR(), which declares a string variable of
the right size for passing to sms_assembly_decode_address(). This way
we detach each client having to have the knowledge of what the right
size is, leaving that decission to the infrastructure
provider. Updated couple of sites in smsutil.c to use it vs a raw
declaration.
This commit is contained in:
Inaky Perez-Gonzalez 2010-07-23 13:59:53 -07:00 committed by Denis Kenzior
parent 402a4b0750
commit ca46f51c2d
2 changed files with 8 additions and 2 deletions

View File

@ -2314,7 +2314,7 @@ static void sms_assembly_load(struct sms_assembly *assembly,
const struct dirent *dir)
{
struct sms_address addr;
char straddr[25];
DECLARE_SMS_ADDR_STR(straddr);
guint16 ref;
guint8 max;
guint8 seq;
@ -2391,7 +2391,7 @@ static gboolean sms_assembly_store(struct sms_assembly *assembly,
{
unsigned char buf[177];
int len;
char straddr[25];
DECLARE_SMS_ADDR_STR(straddr);
if (!assembly->imsi)
return FALSE;

View File

@ -432,6 +432,12 @@ gboolean sms_decode_unpacked_stk_pdu(const unsigned char *pdu, int len,
gboolean sms_encode(const struct sms *in, int *len, int *tpdu_len,
unsigned char *pdu);
/*
* Length is based on the address being 12 hex characters plus a
* terminating NUL char. See sms_assembly_extract_address().
*/
#define DECLARE_SMS_ADDR_STR(a) char a[25]
gboolean sms_decode_address_field(const unsigned char *pdu, int len,
int *offset, gboolean sc,
struct sms_address *out);