- Add a dedicated configuration file for lacre.daemon.
- Implement test/daemon_test.py like test/e2e_test.py, to automate the
following procedure:
1. Start up lacre.daemon.
2. For each test case, send test message to the daemon and verify that the
output received by test/utils/relay.py contains expected pattern.
- Simplify Makefile.
- Fix indentation here and there.
In particular, move:
- test utilities to test/utils;
- unit tests to test/modules.
Also: start implementing the Lacre daemon test (just a stub for now).
- Add a "mailop" module to define mail operations. Each should inherit from
MailOperation class (which just defines the contract).
- Make lacre.mailgate.delivery_plan always return KeepIntact strategy to have
a daemon that just forwards messages without modifying them.
- Add sample configuration.
- Include daemon configuration in mandatory parameter check.
First initialise logging, then import lacre.mailgate module. Otherwise,
module's logging quitely initialises its own root logger that doesn't use
configuration provided by the user.
Also: remove unnecessary "global" keywords.
If a user registers their key for address alice@example.com but receives a
message sent to alice+something@example.com, this message should be encrypted
as well.
- Implement delimiter support for GnuPG encryption.
- Add E2E test case for a clear text message delivered to an address with
delimiter.
- Fix minor bug: wrong configuration parameter was retrieved when logging
information about enc_domain_keymap being active.
After each execution, log an entry with information about total seconds from
the start to the end of execution and the value returned by
time.process_time() function, which returns:
sum of the kernel and user-space CPU time
according to the documentation.
This feature can be used to collect stats about Lacre performance.
Also: extend failover logging configuration with file-based handler to make
sure that the user gets _some_ logs even if they do not configure Lacre at
all.
- Add a new test input message for a new test identity, test scenario
configuration and a test key.
- While retrieving message payload, determine charset based on the
Content-Type header. When missing, default to UTF-8.
- Use more comprehensible variables names.
- Adjust logging levels.
- Replace custom logging code with "logging" package.
- Unify access to configuration and extract to "lacre.config" package.
- Introduce a new configuration file (with a sample included) to control how and where Lacre writes diagnostic output.
- Update sample configuration.
Reviewed-on: #65
- Replace custom logging code with calls to logging module.
- Use logging.config to provide configuration parameters.
To make Lacre's logging more flexible, use fileConfig from logging.config to
set up all parameters. If the configuration file is missing, use dictConfig
with hardcoded reasonable defaults.