summaryrefslogtreecommitdiff
path: root/drivers.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2006-02-20 15:33:27 +0000
committerEric S. Raymond <esr@thyrsus.com>2006-02-20 15:33:27 +0000
commit23ff4bd8f80dc3b35f0ad777cb51b7e59435c487 (patch)
treeecd6349f1ffc593d03afb0d4a48fe67841695875 /drivers.c
parent05ebb1147e2473f3608aa32c6234384c9c5ebbf7 (diff)
downloadgpsd-23ff4bd8f80dc3b35f0ad777cb51b7e59435c487.tar.gz
Merged in improved timekeeping patch passed on by Rob Janssen.
Diffstat (limited to 'drivers.c')
-rw-r--r--drivers.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers.c b/drivers.c
index 4fbecf92..5e9cd524 100644
--- a/drivers.c
+++ b/drivers.c
@@ -65,9 +65,13 @@ gps_mask_t nmea_parse_input(struct gps_device_t *session)
gpsd_report(1, "unknown sentence: \"%s\"\n", session->outbuffer);
}
#ifdef NTPSHM_ENABLE
- if ((st & TIME_SET) != 0)
- /* this magic number is derived from observation */
- (void)ntpshm_put(session, session->gpsdata.fix.time + 0.675);
+ /* this magic number is derived from observation */
+ if ((st & TIME_SET) != 0 &&
+ (session->gpsdata.fix.time != session->driver.nmea.last_fixtime)) {
+ /* this magic number is derived from observation */
+ (void)ntpshm_put(session, session->gpsdata.fix.time + 0.675);
+ session->driver.nmea.last_fixtime = session->gpsdata.fix.time;
+ }
#endif /* NTPSHM_ENABLE */
return st;
} else