summaryrefslogtreecommitdiffstats
path: root/src/smsutil.h
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2009-06-14 02:00:06 -0500
committerDenis Kenzior <denkenz@gmail.com>2009-06-14 02:02:16 -0500
commitc5511db5c56c75f496223bbc1fa52b7a1fc30bbf (patch)
tree942ee02f4fdd56fc665e0cfec89e8d4e74ccd4bd /src/smsutil.h
parentf443493ddbacab2792bb9aaec4806ffab56f7ebd (diff)
downloadofono-c5511db5c56c75f496223bbc1fa52b7a1fc30bbf.tar.bz2
Add utilities for SMS re-assembly
Diffstat (limited to 'src/smsutil.h')
-rw-r--r--src/smsutil.h21
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