summaryrefslogtreecommitdiffstats
path: root/src/sms.c
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2009-12-14 10:13:42 -0600
committerDenis Kenzior <denkenz@gmail.com>2009-12-14 10:14:29 -0600
commit7a5de89f32e8041cab1de9a729ffb4ff8596b87a (patch)
tree7addff6c02d4c0d466fbdccac198eb85e1b98a4a /src/sms.c
parent0bb703f0aedec63e0425f81e05510b21c9b52299 (diff)
downloadofono-7a5de89f32e8041cab1de9a729ffb4ff8596b87a.tar.bz2
Fix: Concatenation of datagram SMS messages
The 16 bit port address was not being computed correctly.
Diffstat (limited to 'src/sms.c')
-rw-r--r--src/sms.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/sms.c b/src/sms.c
index 8b27b9cb..991e257c 100644
--- a/src/sms.c
+++ b/src/sms.c
@@ -601,10 +601,14 @@ static void sms_dispatch(struct ofono_sms *sms, GSList *sms_list)
return;
}
- if (sms_extract_app_port(s, &cdst, &csrc, &is_8bit) &&
- (l == sms_list)) {
- srcport = is_8bit ? csrc : (csrc << 8);
- dstport = is_8bit ? cdst : (cdst << 8);
+ if (sms_extract_app_port(s, &cdst, &csrc, &is_8bit)) {
+ csrc = is_8bit ? csrc : (csrc << 8);
+ cdst = is_8bit ? cdst : (cdst << 8);
+
+ if (l == sms_list) {
+ srcport = csrc;
+ dstport = cdst;
+ }
}
if (srcport != csrc || dstport != cdst) {