summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorInaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>2010-07-23 13:59:53 -0700
committerDenis Kenzior <denkenz@gmail.com>2010-07-23 17:26:12 -0500
commitca46f51c2d9366f07721f0f5f8828771a7aa93c5 (patch)
treef5d528cdd91c57b924ae38d58e93a564bdb76012 /src
parent402a4b0750cfffc327e10de38f11eca2a72341d9 (diff)
downloadofono-ca46f51c2d9366f07721f0f5f8828771a7aa93c5.tar.bz2
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.
Diffstat (limited to 'src')
-rw-r--r--src/smsutil.c4
-rw-r--r--src/smsutil.h6
2 files changed, 8 insertions, 2 deletions
diff --git a/src/smsutil.c b/src/smsutil.c
index e41c0416..8d620f2b 100644
--- a/src/smsutil.c
+++ b/src/smsutil.c
@@ -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;
diff --git a/src/smsutil.h b/src/smsutil.h
index 66ef6f8d..630fde48 100644
--- a/src/smsutil.h
+++ b/src/smsutil.h
@@ -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);