This patch disables the MX record checking for
email address shortcuts. verizon is a shit
smtp host that won't let you check emails as
existing/valid. Email validation still is checked
against RFC based regex for email address as
well as blacklist checking.
TODO(hemna): make this optionally enabled
by config file.
This patch adds the docuemntation source tree in docs.
You can build the documentation with
tox -edocs
View the documentation by opening a browser and viewing
aprsd/docs/_build/index.html
This patch moves all of the plugins out of plugin.py
into their own separate plugins/<plugin>.py file. This
makes it easier to maintain each plugin.
NOTE: You will have to update your ~/.config/aprsd/aprsd.yml
to change the python location path for each plugin enabled.
For example:
OLD:
enabled_plugins:
- aprsd.plugin.EmailPlugin
TO NEW
enabled_plugins:
- aprsd.plugins.email.EmailPlugin
This patch updates the Makefile to only run deps if certain files
don't exist already. Also added the build and upload tasks to
make it easier to test, build and upload a release to pypi
This patch fixes the email.get_email_from_shortcut. It ensures that
if the lookup isn't found in the shortcut list, it simply returns
the original value. This patch also adds a unit test to specifically
test this function to always return the correct value.
This patch shows how to setup a development environment.
Please use the steps as laid out and install the pre-commit
hooks to ensure the code is clean prior to commit.
This patch also updates the QueryPlugin to allow the configured user
to immediately resend all Delayed messages!
This patch updates the QueryPlugin to allow the configured user
to immediately Flush/delete all messages!
This patch adds the new MsgTrack object replacing the
global ack_dict. the ack_dict was not thread safe.
the new MsgTrack is a singleton object that keeps track of
all outbound TextMessage objects. When a TextMessage.send() is called
it is added to the MsgTrack object, and when an ack is received for that
message, the message is removed from the MsgTrack object.
TODO: Add an automatic mechanism for saving the messages in MsgTrack
so that when CTRL-C is called to exit aprsd server, then the MsgTrack
state is saved to storage. When aprsd server is started up again, add
the option to try and reload state of MsgTrack.
This patch also reworked the email thread into an APRSDThread object
that can exit gracefully with CTRL-C.
NOTE: Don't call sleep() with a long time (greater than 5 seconds), as
it causes a delay in exiting aprsd until the last sleep() finishes.
Since aprsd has so many threads now for processing incoming messages and
outgoing messages, we need to coordinate all thread operations so that
they don't block the exiting of the app.
This patch reworks the threading code for processing
messages. This patch also extends the aprslib IS class
to allow us to stop processing the consumer packets when
someone hits CTRL-C correctly. Alloing the app to exit.
This patch updates the messaging lib to use Message Objects
for each message type (text, ack) that know how to send
themselves with the same interface.
This patch refactored the process_packet method
and adjusted the logic for determining if we got
a message to filter on. We now look at the format
to make a determination. Also isolated the processing
of message packets, ack packets and mic-e packets into
their own functions.
The changelog is generated by pbr automatically when you run
python setup.py sdist bdist_wheel
So when you are ready for a new release, run
python setup.py sdist bdist_wheel
git add Changelog && git commit -m "Updated ChangeLog for version XXXX"
git tag -a vXXXX -m "Release version XXX"
git push origin --tags
Then release to pypi
twine check dist/*
twine upload dist/*
This patch ensures that after we get an ACK, then proessing of the ack
message is complete and we don't try and send the ack through plugin
filtering.
Created send_ack_direct for the send-message command.
Also added logic to the send-message command to ensure we wait for an
ack from the command sent to APRSD and we also wait for a response
message and send an ack to that response before we exit.