| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
OSX versions earlier than 10.6 fail to define IPV6_TCLASS, causing the
compile of gpsd.c to fail. There is already a fallback definition for
Gnu/Hurd. The attached patch:
1) Extends the existing Gnu/Hurd fallback definition to include a case
for OSX. This is currently based on _APPLE_. Basing it on Darwin might
be more appropriate, but that would need to be tested.
2) Duplicates this fallback setup in netlib.c, where it was missing.
3) Adds an ifdef to gpsd.c so that other cases that fail to define
IPV6_TCLASS will simply omit the IPTOS_LOWDELAY setup, rather than
failing to build. It's not entirely clear that sweeping the problem
under the rug is preferable to getting an error and having the builder
figure out what to do, but it is consistent with netlib.c, which
includes a similar ifdef.
The patch is originally from jeremyhu@macports.org, updated for 3.14
by ryandesign@macports.org, and then updated by me for 3.16.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The proximate cause was that we've been seing emission of error
messages that were randomly and disturbingly variable across different
environments - notably Raspbian and Gentoo splint gave nontrivially
different results than Ubuntu 14.10 splint. And this was *not* due to
Ubuntu patches! A pristine splint built from the 3.1.2 tarball on
Ubuntu didn't match the Raspbian and Gentoo results either.
But this has been coming for a while. Easy access to more modern
static analyzers such as coverity, scan-build and cppcheck has been
decreasing the utility of splint, which is unmaintained and somewhat
buggy and not easy to use.
Only file not cleaned is ppsthread.c, because Gary has been working
on it during this cleanup.
All regression tests pass. PPS observed live on GR601-W.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
netlib.c has long had code to support IPTOS_LOWDELAY but lacking
the appropriate include never compiled it in. It was also
wrong for ipv6 packets.
Signed-off-by: Eric S. Raymond <esr@thyrsus.com>
|
|
|
|
| |
All regression tests pass. PPS is live.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Not thread-safe, but at least it has a chance of being useful in
problem diagnosis.
Signed-off-by: Eric S. Raymond <esr@thyrsus.com>
|
| |
|
| |
|
|
|
|
| |
Signed-off-by: Eric S. Raymond <esr@thyrsus.com>
|
|
|
|
| |
Signed-off-by: Eric S. Raymond <esr@thyrsus.com>
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Only the daemon now uses this function.
|
|
|
|
|
|
| |
A recent bug report makes it clear that all such uses have to be removed from
the client libraries. Otherwise a GUI client might dummp log messages uselessly
in the X session error log. This is a start.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This follows a suggestion from Christian Eddie Dost <ecd@brainaid.de>,
who had this to say:
However, gpsd hangs when used with a tcp:// device, if you start the
device without waiting for clients (-n option), there will never be a
client connection accepted. If you start gpsd without -n option one
client will be accepted and receive data, but when closing the client
connection there will be no new connection possible.
The problem is gpsd hangs inside consume_packets() or more exactly
inside a blocking read() on the tcp socket a few functions further
down. consume_packets() never returns to the main select() loop.
The following patch configures sockets to non blocking, this fixes the
problem and gpsd works fine for me with tcp:// devices. Using this
patch should allow the special udp handling at the end of the function
consume_packets() to be removed.
I applied the suggested patch and also removed the special UDP
handing. All regressions test pass (including the UDP one), and gpsd
-N tcp://data.aishub.net:4006 reads AIS data as expected.
|
|
|
|
| |
splints clean.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Patch by
Signed-off-by: esr@thyrsus.com
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The patch original is at:
https://lists.berlios.de/pipermail/gpsd-dev/attachments/20100111/85ad4e15/attachment.bin
This revision changes netlib_connectsock() to take a first argument that is
an address family and can specify IPv4, IPv6, or either. It also changes
gpsd.c to open two client sockets, one IPv4 and one IPv6, and listen
on both.
As a required cleanup, a number of defaults to "127.0.0.1" become
defaults to "localhost" so we're not hardwiring in IPv4 assumptions
anymore.
I've omitted a significant portion of the Mehani patch that changed the
interface of the client library in an incompatible way. Currently there is
no way to make gpsd listen to IPv4 or IPv6 only, and no way to make a
client query over IPV4 or IPv6 only. Also, we'd really like to be able to
condition out IPv6 or (someday) IPv4 support for a leaner runtime, and
there's no way to do that yet, either.
Under IPv4, regression tests pass; live operation with a GPS mouse and
the aishub feed both work. However, the resulting code does not splint
clean; this will need to be fixed, and that's going to be tricky due
to the new sockaddr_t struct.
|
|
|
|
| |
All regression tests pass,
|
| |
|
|
|
|
|
|
|
| |
That is, instead of sectioning out two little config defines and
putting them in. This makes gpsd.h self-copntained (e.g. in case it
gets installed as a library header) and means we can get rid of most
inclusions of it.
|
|
|
|
| |
All regression tests pass.
|
|
|
|
|
| |
The codebase now splints completely clean - no errors, no warnings, no
splint croaking on include files it can't handle.
|
|
|
|
| |
Now to see if I can trim them any.
|
|
|
|
| |
No effect on compilation. All regression tests pass.
|