diff options
author | Denis Kenzior <denkenz@gmail.com> | 2009-06-14 02:00:06 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2009-06-14 02:02:16 -0500 |
commit | c5511db5c56c75f496223bbc1fa52b7a1fc30bbf (patch) | |
tree | 942ee02f4fdd56fc665e0cfec89e8d4e74ccd4bd /src/smsutil.h | |
parent | f443493ddbacab2792bb9aaec4806ffab56f7ebd (diff) | |
download | ofono-c5511db5c56c75f496223bbc1fa52b7a1fc30bbf.tar.bz2 |
Add utilities for SMS re-assembly
Diffstat (limited to 'src/smsutil.h')
-rw-r--r-- | src/smsutil.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/smsutil.h b/src/smsutil.h index 8b86352b..64d7800d 100644 --- a/src/smsutil.h +++ b/src/smsutil.h @@ -321,6 +321,20 @@ struct sms_udh_iter { guint8 offset; }; +struct sms_assembly_node { + struct sms_address addr; + time_t ts; + GSList *fragment_list; + guint8 ref; + guint8 max_fragments; + guint8 num_fragments; + unsigned int bitmap[8]; +}; + +struct sms_assembly { + GSList *assembly_list; +}; + gboolean sms_decode(const unsigned char *pdu, int len, gboolean outgoing, int tpdu_len, struct sms *out); @@ -360,4 +374,11 @@ gboolean sms_extract_concatenation(const struct sms *sms, guint16 *ref_num, unsigned char *sms_decode_datagram(GSList *sms_list, long *out_len); char *sms_decode_text(GSList *sms_list); +struct sms_assembly *sms_assembly_new(); +void sms_assembly_free(struct sms_assembly *assembly); +GSList *sms_assembly_add_fragment(struct sms_assembly *assembly, + const struct sms *sms, time_t ts, + const struct sms_address *addr, + guint16 ref, guint8 max, guint8 seq); +void sms_assembly_expire(struct sms_assembly *assembly, time_t before); #endif |