summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Back out the attempt to use VTIME.Eric S. Raymond2015-01-3118-97/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | According to Matthias Drochner at http://lists.lysator.liu.se/pipermail/lsh-bugs/2003q4/000151.html: I thought I'd give lsh a try, just to see how it compares to openssh... The client didn't work well on NetBSD, got a message like "unexpected EWOULDBLOCK" on each keystroke. Looked a bit deeper and found that stdin is set to O_NONBLOCK and a raw tty mode with c_cc[VMIN] > 1 and c_cc[VTIME] > 0. I'll append a little test program which does the same. I've tried it on 3 operating systems (Linux, NetBSD, Digital UNIX), and it behaves differently on each: -on Linux, if a key is pressed, the read returns immediately with that one character -on NetBSD, the read returns with no data but EWOULDBLOCK -on D'UNIX, the poll() doesn't teturn before 4 keypresses are done; the read() returns these 4 characters Indeed, in SUSv2's termios page is a sentence which says that if both O_NONBLOCK and VTIME>0 are set, the behaviour is more or less undefined. I've solved my immediate problems by setting VMIN to 1 instead of 4 in unix_interact.c:do_make_raw(), but VTIME is still pointless, so I wouldn't call this a clean solution. All regression tests pass.
* Comment typo fix.Eric S. Raymond2015-01-311-1/+1
|
* Add more help text to test_nmea2000.Reinhard Arlt2015-01-311-2/+10
|
* Add -b (build) option to test_nma2000.Reinhard Arlt2015-01-311-3/+10
|
* New checkfile for nmea2000.Reinhard Arlt2015-01-311-24/+24
|
* Add new scale routine.Reinhard Arlt2015-01-311-2/+15
|
* Merge logs.Reinhard Arlt2015-01-315-8/+80
|\
| * Fix PPS comments.Gary E. Miller2015-01-301-3/+2
| | | | | | | | | | Chronyd may slew the clock rate up to 8.334%. So never fail short term time measurements seemingly off by 10% or less.
| * Loosen up some 1 Hz PPS guard bands.Gary E. Miller2015-01-311-2/+8
| | | | | | | | | | | | | | | | When a Rasberry Pi starts up, its clock can be very bad until gpsd gives ntpd/chronyd enough to tame it. ntpd/chronyd have very good filters, Let them decide what time to use and not try to duplicate their.
| * Document why gpsd needs to die on certain mutex failures.Gary E. Miller2015-01-301-0/+9
| |
| * Add missing pthread_mutex_init(&ppslast_mutex)Gary E. Miller2015-01-303-0/+20
| | | | | | | | | | No error checking was previously done on uses of ppslast_mutex. So likely the mutex has never worked, just created the odd segfault.
| * Missing \n in debug statement.Gary E. Miller2015-01-301-1/+1
| |
| * Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/gpsdGary E. Miller2015-01-301-1/+15
| |\
| | * Add workaround for VMIN/VTIME situation.Greg Troxel2015-01-301-1/+15
| | | | | | | | | | | | | | | On NetBSD, there's something wrong between gpsd code, select and termios's VMIN/VTIME. Until debugged, avoid it.
| * | Check return codes for pthread_mutex*() in ppsthread.cGary E. Miller2015-01-301-4/+28
| |/ | | | | | | Not checking returns codes is always a bad idea.
* | Change JSON encoding in checkfile.Reinhard Arlt2015-01-311-123/+123
|/
* Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/gpsdGary E. Miller2015-01-302-5/+5
|\
| * Fix a formatting error in AIS JSON generation (client library get it right).Eric S. Raymond2015-01-302-5/+5
| | | | | | | | Required one test rebuild.
* | Restore hastily removed checks on pthread usage.Gary E. Miller2015-01-301-2/+14
|/ | | | Any failure of pthread_mutex_lock() is a fatal error.
* Assertions cleanup and new policy. All regression tests pass.Eric S. Raymond2015-01-304-11/+48
|
* Add BUILD.* and CHECK.* to .gitignoreGreg Troxel2015-01-301-0/+3
| | | | (These are produced by devtools/do-build.)
* Add a note about NTP latency reduction.Eric S. Raymond2015-01-301-2/+3
|
* Correct assertions in libgpsd_core to assert 0 == errJon Schlueter2015-01-301-2/+2
|
* Fix PPS comment.Gary E. Miller2015-01-291-3/+3
|
* Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/gpsdGary E. Miller2015-01-291-1/+2
|\
| * Add netbsd6 regression timing data.Greg Troxel2015-01-291-1/+2
| |
* | Add assert()s to the mutex lock/unlock.Gary E. Miller2015-01-291-2/+6
|/ | | | When in doubt, always test return codes.
* Alas, we can't use ICANON.Eric S. Raymond2015-01-291-1/+5
| | | | | | | | For the moment, we do nothing with the textual argument to gpsd_optimize_io(). We'd like to use it to set ICANON mode and let the kernel do all the line buffering itself. The problem with this is that VTIME stops working in ICANON, so a binary packet coming up the wire would result in no further input being seen.
* Rare I/O with timeout seems to work. This replaces the adaptive-delay code.Eric S. Raymond2015-01-291-4/+31
|
* Create a logic path for each driver to set tty controls.Eric S. Raymond2015-01-293-0/+14
|
* splint cleanup for gpsdecode -m implementation.Eric S. Raymond2015-01-291-2/+2
|
* Add a minimum packet length to every driver.Eric S. Raymond2015-01-2915-0/+36
| | | | Length 0 means the minimum is unknown and the driver should use character I/O.
* Remove the failed adaptive-delay experiment.Eric S. Raymond2015-01-293-97/+0
| | | | | | | | Instead, we're going to try telling the tty layer to deliver input in chunks larger than chracters, with a timeout. That way the select call in the main loop will return data ready less often. All regression tests pass.
* Document that -m ignores comment packets.Eric S. Raymond2015-01-291-2/+2
|
* Add gpsdecode -m option for dumping minimum packet lengths.Eric S. Raymond2015-01-293-1/+37
|
* Add more help to test_nmea2000.Reinhard Arlt2015-01-291-6/+34
|
* Improve test_nmea2000.Reinhard Arlt2015-01-291-6/+27
|
* First version of test_nmea2000 testscript.Reinhard Arlt2015-01-291-0/+53
|
* Using SIOCOUTQ to flush output on client socket close caused a hard hang.Eric S. Raymond2015-01-281-17/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | To replicate the problem: (1) Check out the parent of this revision. (2) Run "gpsd -n -N -D 3 /dev/ttyUSB0" substituting the device as needed. (3) Run the following script in another window: while true do date ./gpspipe -n 3 -R -o /dev/null # hang if gpsd is sick ./gpspipe -d -R -o /dev/null sleep 2 DELAY=$RANDOM # 0-32K #usleep ${DELAY}00 # 0-3 seconds sleep `echo "scale=6; $DELAY / 1000000" | bc` killall gpspipe #ps ax | grep gpspipe done (4) Run gpsmon in a third window. gpsd will hang in 3-5 minutes, requiring kill -9, in the kernal hrtime function.
* Add netbsd5-specific gpsfake timing and comments.Greg Troxel2015-01-281-0/+14
| | | | | It seems NetBSD-5 has different behavior than 6. Add a new if branch for 5 with longer delays.
* Shorten OS X delays.Greg Troxel2015-01-281-3/+7
|
* Remove a guard that is duplicated in the called function.Eric S. Raymond2015-01-281-11/+9
| | | | All regression tests pass.
* Merge branch 'master' of git://git.sv.gnu.org/gpsdReinhard Arlt2015-01-281-1/+2
|\
| * Reduce OSX delay slightly, and add datapoint.Greg Troxel2015-01-281-1/+2
| |
* | Add logfile and checkfile for nmea2000.Reinhard Arlt2015-01-282-0/+25242
|/
* Reduce log verbosity.Eric S. Raymond2015-01-271-2/+2
|
* Try a simpler adaptive-delay formula that produces shorter delays.Eric S. Raymond2015-01-272-8/+15
| | | | All regression tests pass.
* Use %.3f for WRITE_PAD, because 0.004 is a typical value.Greg Troxel2015-01-271-1/+1
|
* Fix an erroneous format literal.Eric S. Raymond2015-01-271-1/+1
|
* Make PPS delivery troubleshooting a bit easier. All regression tests pass.Eric S. Raymond2015-01-272-10/+24
|