summaryrefslogtreecommitdiff
path: root/driver_sirf.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_sirf.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_sirf.c')
-rw-r--r--driver_sirf.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/driver_sirf.c b/driver_sirf.c
index 449fd0b0..9895b7db 100644
--- a/driver_sirf.c
+++ b/driver_sirf.c
@@ -475,6 +475,7 @@ static gps_mask_t sirf_msg_svinfo(struct gps_device_t *session,
=
gpstime_to_unix(session->context->gps_week, session->context->gps_tow)
- session->context->leap_seconds;
+ gpsd_rollover_check(session, session->gpsdata.skyview_time);
/*@ end @*/
for (i = st = 0; i < SIRF_CHANNELS; i++) {
int off = 8 + 15 * i;
@@ -631,8 +632,9 @@ static gps_mask_t sirf_msg_navsol(struct gps_device_t *session,
/*@ ignore @*//*@ splint is confused @ */
session->newdata.time =
gpstime_to_unix(session->context->gps_week,
- session->context->gps_tow) -
- session->context->leap_seconds;
+ session->context->gps_tow)
+ - session->context->leap_seconds;
+ gpsd_rollover_check(session, session->newdata.time);
/*@ end @*/
#ifdef NTPSHM_ENABLE
if (session->newdata.mode <= MODE_NO_FIX) {