Changed the default to not log incoming packets. If you want to see
the packets logged, then pass in --log-packets.
Added the ability to specify a list of plugins to load by passing in
--enable-plugin <fully qualified python path to class>
You can specify --enable-plugin multiple times to enable multiple
plugins.
Added new switch to enable the packet stats thread logging of stats
of all the packets seen. --enable-packet-stats. This is off by
default.
This patch adds a try except block around the APRSIS
consumer. This gives us a chance to log the specific
exception, so we can see why the consumer failed.
This patch adds a new config option 'enable_sending_ack_packets', which
is by default set to True. This allows the admin to disable sending Ack
Packets for MessagePackets entirely.
this patch adds table formatted output for the stats in the
aprsd dump-stats command. You can also show the stats in raw json/dict
format by passing --raw. You can also limit the sections of the
stats by passing --show-section aprsdstats
When a packet _send_direct() failed to send due to a network
timeout or client issue, we don't want to count that as a send
attempt for the packet. This patch catches that and allows for
another retry.
this patch refactors the client, drivers and client factory
to use the same Protocol mechanism used by the stats collector
to construct the proper client to be used according to
the configuration
This patch also removes the setup.cfg and replaces it with
the pyproject.toml.
This also renames the dev-requirements.txt to requirements-dev.txt
To install dev
pip install -e ".[dev]"
This patch overrides the base QueueHandler class
from logging to ensure that the queue doesn't grow
infinitely. That can be a problem when there is
no consumer pulling items out of the queue.
the queue is now capped at 200 entries max.
This patch adds some try except blocks in both the stats collector
and the packets collector calls to registered objects. This can
prevent the rest of APRSD falling down when the collector objects
have a failure of some sort.
this patch adds the new PacketCollector class.
It's a single point for collecting information about
packets sent and recieved from the APRS client.
Basically instead of having the packetlist call the seen list
when we get a packet, we simply call the PacketCollector.rx(),
which in turn calls each registered PacketMonitor class.
This allows us to decouple the packet stats like classses inside
of APRSD. More importantly, it allows extensions to append their
own PacketMonitor class to the chain without modifying ARPSD.