Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
The doc stripper puts direction="in" for all parameters without a direction
which broke on the signal signatures
|
|
|
|
|
|
|
|
Fixes part of 33431
|
|
|
|
From Luca Ferretti <lferrett@gnome.org>
|
|
|
|
|
|
|
|
patch from Andreas Moog <amoog@ubuntu.com>
Closes: https://bugs.freedesktop.org/show_bug.cgi?id=45909
|
|
TTY devices were accidentally being opened twice but only closed once. This
meant that when a device file was removed, but then replaced, a file descriptor for the old device was cached somewhere in the deep bowels of the system and
this dead file descriptor was being returned when Gypsy attempted to open the
new device, causing I/O errors when trying to read from it. Which in turn
caused some lovely CPU pegging as Gypsy would just enter a busy loop constantly
trying to read from the dead descriptor.
In short, everyone's a winner!
|
|
A new GError was being created when an error occurred reading from the
IOChannel. Nothing was being done with this error and it was just leaking.
|
|
Weren't removing old entries when devices were removed
Were emitting the wrong signal signature
|
|
Fallback to checking the product ID components on the tty device if the
usb_device fails. Also don't assume that the correct usb device will be the
grandparent of the tty.
|
|
|
|
GypsyDiscovery interface has changed to also return a type string:
"usb", "internal" or "bluetooth" indicating the device type.
|
|
By default Gypsy terminates 10 seconds after the last client has quit. A
--no-autoterminate option stops this
|
|
|
|
|
|
The UDev discovery looked for known USB devices and guessed what the device
path would be. Patch fixes this to look for tty devices, and works back to
check if their parent device is a known GPS device.
Fixes: FDO#41673
|
|
Check if the UDev event was something we cared about, and if so emit the signal
Fix the signal types to G_TYPE_STRING
|
|
|
|
|
|
|
|
|
|
|
|
Add a GypsyDiscovery object that clients can use to access the Discovery
interface
|
|
|
|
|
|
The GypsyDiscovery object implements the discovery interface on the serverside,
using udev to find USB/Serial GPS devices, and Bluez to find Bluetooth ones
|
|
|
|
The discovery of none Bluetooth devices will be done by udev, so we need gudev
for that
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Each time we read into a temporary buffer and the memcpy'd the data into the
real buffer. Instead of using the temporary buffer we now ask the parser module
to give us a pointer to the buffer to write to and how much space there is in it
which means we don't need to memcpy.
|
|
We assumed that if there was a \r in the buffer, then there must also be a \n.
if the \r was the final character in the buffer there there would not be a \n
so adding 2 to the sentence length would cause an invalid read off the end of
the buffer, and by making chars_in_buffer equal -1 an invalid write by
underflowing the buffer, scribbling over the address of ctxt. Which then caused
a crash.
|
|
|
|
RMC can have an optional 12th field, but we just ignore it. Add a comment
explaining that better
|
|
A GSV sentence can have at maximum 19 fields, but depending on the number
of satellites seen it can have less. The rule is that it should have 3 fields
at the start and then 4 fields for each satellite in the message. To check, we
check (nfields - 3) % 4 == 0.
|
|
|
|
|
|
Parsing code is now split out to separate parsing objects, so the specific
code for parsing the Garmin code into NMEA and then parsing that is no longer
needed. Likewise the code that gathers NMEA sentences can be removed.
Instead we now detect what type of device it is (Garmin or NMEA), create a
parser for that type and pass any received data to it.
|
|
|