summaryrefslogtreecommitdiff
path: root/driver_italk.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2010-12-20 04:56:57 -0500
committerEric S. Raymond <esr@thyrsus.com>2010-12-20 04:56:57 -0500
commitbcea2a19a631a149839025c42629465e7ba63b9c (patch)
treecf71c60d698bc850b67e8effddfe5378fb708df6 /driver_italk.c
parent07d0ac7220b760dc78eac593f73a508a23bbad71 (diff)
downloadgpsd-bcea2a19a631a149839025c42629465e7ba63b9c.tar.gz
Insert GPS week rollover checks everywhere we rely on GPS time.
All regression tests pass.
Diffstat (limited to 'driver_italk.c')
-rw-r--r--driver_italk.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/driver_italk.c b/driver_italk.c
index 8f80699f..df9674b7 100644
--- a/driver_italk.c
+++ b/driver_italk.c
@@ -61,6 +61,7 @@ static gps_mask_t decode_itk_navfix(struct gps_device_t *session,
t = gpstime_to_unix((int)gps_week, session->context->gps_tow)
- session->context->leap_seconds;
session->newdata.time = t;
+ gpsd_rollover_check(session, session->newdata.time);
mask |= TIME_IS;
epx = (double)(getlesl(buf, 7 + 96) / 100.0);
@@ -136,6 +137,7 @@ static gps_mask_t decode_itk_prnstatus(struct gps_device_t *session,
t = gpstime_to_unix((int)gps_week, session->context->gps_tow)
- session->context->leap_seconds;
session->gpsdata.skyview_time = t;
+ gpsd_rollover_check(session, session->gpsdata.skyview_time);
gpsd_zero_satellites(&session->gpsdata);
nsv = 0;
@@ -201,6 +203,7 @@ static gps_mask_t decode_itk_utcionomodel(struct gps_device_t *session,
t = gpstime_to_unix((int)gps_week, session->context->gps_tow)
- session->context->leap_seconds;
session->newdata.time = t;
+ gpsd_rollover_check(session, session->newdata.time);
gpsd_report(LOG_DATA,
"UTC_IONO_MODEL: time=%.2f mask={TIME}\n",
@@ -272,6 +275,8 @@ static gps_mask_t decode_itk_pseudo(struct gps_device_t *session,
session->context->gps_tow = tow / 1000.0;
t = gpstime_to_unix((int)gps_week, session->context->gps_tow)
- session->context->leap_seconds;
+ session->newdata.time = t;
+ gpsd_rollover_check(session, session->newdata.time);
/*@-type@*/
for (i = 0; i < n; i++){