summaryrefslogtreecommitdiff
path: root/driver_aivdm.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2010-01-30 19:38:41 +0000
committerEric S. Raymond <esr@thyrsus.com>2010-01-30 19:38:41 +0000
commitad64aae039346166d8be14a2abfc2c8aefd713f5 (patch)
tree743e40c74e31c1ae246c44adc3eb88f137895d6f /driver_aivdm.c
parent0a85df3e226d3395c43f3a199b918403607c3068 (diff)
downloadgpsd-ad64aae039346166d8be14a2abfc2c8aefd713f5.tar.gz
Regression test and proper field conditionalization for AIS Type 16
Diffstat (limited to 'driver_aivdm.c')
-rw-r--r--driver_aivdm.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/driver_aivdm.c b/driver_aivdm.c
index 2265c597..eaf53a2b 100644
--- a/driver_aivdm.c
+++ b/driver_aivdm.c
@@ -357,8 +357,8 @@ bool aivdm_decode(const char *buf, size_t buflen,
ais->type16.mmsi1 = UBITS(40, 30);
ais->type16.offset1 = UBITS(70, 12);
ais->type16.increment1 = UBITS(82, 10);
- if (ais_context->bitlen <= 96)
- ais->type16.mmsi2 = 0;
+ if (ais_context->bitlen < 144)
+ ais->type16.mmsi2=ais->type16.offset2=ais->type16.increment2 = 0;
else {
ais->type16.mmsi2 = UBITS(92, 30);
ais->type16.offset2 = UBITS(122, 12);