return buffer;
}
-gboolean sms_extract_app_port(const struct sms *sms, int *dst, int *src)
+gboolean sms_extract_app_port(const struct sms *sms, int *dst, int *src,
+ gboolean *is_8bit)
{
struct sms_udh_iter iter;
enum sms_iei iei;
int srcport = -1;
int dstport = -1;
+ gboolean is_addr_8bit;
if (!sms_udh_iter_init(sms, &iter))
return FALSE;
dstport = addr_hdr[0];
srcport = addr_hdr[1];
+ is_addr_8bit = TRUE;
break;
case SMS_IEI_APPLICATION_ADDRESS_16BIT:
dstport = (addr_hdr[0] << 8) | addr_hdr[1];
srcport = (addr_hdr[2] << 8) | addr_hdr[3];
+ is_addr_8bit = FALSE;
break;
default:
if (src)
*src = srcport;
+ if (is_8bit)
+ *is_8bit = is_addr_8bit;
+
return TRUE;
}
enum sms_charset *charset,
gboolean *active, gboolean *discard);
-gboolean sms_extract_app_port(const struct sms *sms, int *dst, int *src);
+gboolean sms_extract_app_port(const struct sms *sms, int *dst, int *src,
+ gboolean *is_8bit);
gboolean sms_extract_concatenation(const struct sms *sms, guint16 *ref_num,
guint8 *max_msgs, guint8 *seq_num);