This allows the admin to set the number of packets to store
in the PacketList object for tracking. For apps like IRC,
we need to store lots more packets to detect dupes.
There may be applications where the admin might not want a hard
coded 3 acks sent for every RX'd packet. This patch adds the
ability to change the number of acks sent per RX'd packet.
The default is still 3.
Somehow the hidden div for the webchat interface's
tab notification was removed. this patch adds it back in
so the user knows that they have message(s) for a tab that
isn't selected
This patch removes the need for the RPC Server from aprsd.
APRSD Now saves it's stats to a pickled file on disk in the
aprsd.conf configured save_location. The web admin UI
will depickle that file to fetch the stats. The aprsd server
will periodically pickle and save the stats to disk.
The Logmonitor will not do a url post to the web admin ui
to send it the latest log entries.
Updated the healthcheck app to use the pickled stats file
and the fetch-stats command to make a url request to the running
admin ui to fetch the stats of the remote aprsd server.
This does some cleanup with the stats collector and
usage of the stats. The patch adds a new optional
param to the collector's collect() method to tell
the object to provide serializable stats. This is
used for the webchat app that sends stats to the
browser.
This patch implements a new stats collector paradigm
which uses the typing Protocol. Any object that wants to
supply stats to the collector has to implement the
aprsd.stats.collector.StatsProducer protocol, which at the
current time is implementing a stats() method on the object.
Then register the stats singleton producer with the collector by
calling collector.Collector().register_producer()
This only works if the stats producer object is a singleton.
This adds a layer between the client object and the
actual client instance, so we can reset the actual
client object instance upon failure of connection.