mirror of git://git.sysmocom.de/ofono
SMS 8-Bit and 16-Bit ports are not the same
This commit is contained in:
parent
6ea7dba3b6
commit
79e39e4016
|
@ -1703,7 +1703,8 @@ const char *sms_address_to_string(const struct sms_address *addr)
|
|||
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;
|
||||
|
@ -1711,6 +1712,7 @@ gboolean sms_extract_app_port(const struct sms *sms, int *dst, int *src)
|
|||
|
||||
int srcport = -1;
|
||||
int dstport = -1;
|
||||
gboolean is_addr_8bit;
|
||||
|
||||
if (!sms_udh_iter_init(sms, &iter))
|
||||
return FALSE;
|
||||
|
@ -1739,6 +1741,7 @@ gboolean sms_extract_app_port(const struct sms *sms, int *dst, int *src)
|
|||
|
||||
dstport = addr_hdr[0];
|
||||
srcport = addr_hdr[1];
|
||||
is_addr_8bit = TRUE;
|
||||
break;
|
||||
|
||||
case SMS_IEI_APPLICATION_ADDRESS_16BIT:
|
||||
|
@ -1755,6 +1758,7 @@ gboolean sms_extract_app_port(const struct sms *sms, int *dst, int *src)
|
|||
|
||||
dstport = (addr_hdr[0] << 8) | addr_hdr[1];
|
||||
srcport = (addr_hdr[2] << 8) | addr_hdr[3];
|
||||
is_addr_8bit = FALSE;
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -1773,6 +1777,9 @@ gboolean sms_extract_app_port(const struct sms *sms, int *dst, int *src)
|
|||
if (src)
|
||||
*src = srcport;
|
||||
|
||||
if (is_8bit)
|
||||
*is_8bit = is_addr_8bit;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
|
@ -367,7 +367,8 @@ gboolean sms_mwi_dcs_decode(guint8 dcs, enum sms_mwi_type *type,
|
|||
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);
|
||||
|
||||
|
|
Loading…
Reference in New Issue