Use a plain Conflicts: piaware on faup1090, as we don't actually want to replace it.
If regular piaware is installed, it'll provide a faup1090 binary anyway.
* Install dump1090 to /usr/bin in the Linux style (rather than /usr/local/bin).
* Install HTML files as part of the "make install" (rather than requiring
one to do some variant of "make -f makefaup1090 install" to get the HTML
files dump1090 needs into their right location.
As a result of this a "sudo make install" should produce a working standalone
dump1090, though makefaup1090 options still add capabilities like starting
and stopping dump1090 and boot and shutdown.
* Set all the ports in the services table we're not using to zero.
* Don't enable a table entry that's disabled but has a port defined. This allows us to use the table definition for the 30005 port for us to connect out to it.
Before this if dump1090 restarted for some reason then faup1090 will sit
there indefinitely "looking" stupid and passing no data to piaware,
even after dump1090 comes back up.
Much gratitude to Oliver Jowett (github user mutability) for the fix.
For faup1090 only the FlightAware service is enabled and we were shortening
the services table by using our own define of FAUP_NET_SERVICES_NUM and
having it set to 1.
Apps need to stick with the same number of services as defined by
MODES_NET_SERVICES_NUM in dump1090 because dump1090 support routine
modesAcceptClients loops on this constant to walk the services table.
Likewise we now define all the service ports dump1090 defines even though we
are not using them. We have configured them as disabled.
Version bump to 1.14.
faup1090 was using the wrong constant, MODES_NET_SERVICES_NUM, rather than
FAUP_NET_SERVICES_NUM, so it ran off the end of an array binding random
ports until failing when it tried to bind the FlightAware port a second time.
Thanks to Oliver Jowett (github user "mutability") for the fix.
Client disconnection appears as a read of 0 bytes.
Without a test for this, dump1090 continues to poll that client forever.
Also, read() may return EWOULDBLOCK as well as EAGAIN
for "no data right now", so handle that.
I don't know if there is an equivalent Win32 bug here as the Win32
interfaces seem subtly different to vanilla POSIX.
The following test/break can probably be removed if Win32 needs
the same fix.