This new collector allows external extensions and plugins to
get callbacks during the keepalive thread runs. Every 60 seconds
the keepalive thread will do some checks and log some entries in the
logfile to keep the user/admin aware of the state of aprsd itself.
This patch removes the admin command out of aprsd proper.
The admin interface will be an aprsd extension called
aprsd-admin-extension.
This is the start of the effort to trim down the base of APRSD
and the commands to server, healthcheck, list_plugins, list_extensions.
This will reduce the number of required packages that APRSD core needs.
This is useful for others using APRSD as their base to their
applications.
This patch makes a fix in the webchat UI for packets that
don't have a msgNo in the RX'd packets. Previously the packets
would just show up as a dupe of the previous RX'd packet from
the same callsign. Webchat UI will now properly show the message
by creating a fake msgNo value based on the contents of the RX'd packet
from_call+addressee+message_text
If any part of the code had a packet object and called prepare()
on it, it would create a msgNo if it wasn't set. Sometimes we
get packets on the wire/RF that don't have a msgNo, so adding one
locally is wrong. We should ONLY create a msgNo on a packet that
is destined for transmission.
This patch ensures that even if prepare() is called, that only
packets that are created locally for TX get a msgNo unless it
already exists from RX'd packets.
this patch changes webchat to not call REPEAT automatically to fetch the
location of a remote callsign if the client is on kiss.
Only fetch the location if the user clicks the button to fetch the
location.
Lots of APRS messages don't have message ids in the packet. This
prevents packet.msgNo from having a value. so when we look the packet
up in the packet_list, the packet key has a None for a value for the
msgNo portion of the key. This results in every packet after the first
from that callsign that doesn't have a msg id, will be marked as a dupe
and will never be processed.
This patch checks to see if msgNo is None. If it is, then just
mark the packet as never being seen and pass it on the chain to
be processed. This also means that there should never be an Ack
sent for those packets that don't container a msgNo value.
This patch adds the logical ability to pause and unpause a thread.
This enables the base class decide to call the main loop() method or
not. If the thread is paused, it will simply call sleep for a second
and then continue. Only when the thread is unpaused will the main
loop() get called again.
This patch updates the aprsd client base class to report login succes
and any error string associated with a login failure. Also exposes
the login status so anyone using the client to check for login failure.
Update webchat, listen, server commands to check for initial login
failures and exit if the login failed. No reason to continue on
if the login fails.
This patch changes the location string to include Compass rose
instead of bearing degrees. Also adds the time timeago package
for calculating how much time since the beacon to format to something
like "12 days ago".
Fixed a few issues with webchat UI. When sending a message,
make sure the recipient tab is selected after sending.
Also, don't reset the path selection after sending a message.
The trace call now include the filename from where the call was
made as well as the qualname for the function/method being called
so you can see from the logs what class the call is from