diff options
Diffstat (limited to 'pigeonhole/TODO')
-rw-r--r-- | pigeonhole/TODO | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/pigeonhole/TODO b/pigeonhole/TODO new file mode 100644 index 0000000..39420b5 --- /dev/null +++ b/pigeonhole/TODO @@ -0,0 +1,97 @@ +Current activities: + +* Rework string matching: + - Give Sieve its own runtime string type, rather than (ab)using string_t. + - Add support for stream matching for handling large values, e.g. from the + body extension. + - Improve efficiency of :matches and :contains match types. +* Build proper comparator support: + - Add normalize() method to comparators to normalize the string before + matching (for efficiency). + - Allow for the existence of dynamic comparators (i.e. specified by + variables). + - Implement comparator-i;unicode-casemap. + +Parallel plugin-based efforts (on hold at the moment): + +* Implement enotify xmpp method as a plugin. + +Next (mostly in order of descending priority/precedence): + +* Implement message modification and extraction API in order to: + - Properly implement the interaction between editheader and foreverypart/mime. + - Implement replace, enclose extensions. +* Properly implement Sieve internationalization support (utf-8 handling), + currently it is not complete: + - Make this implementation fully conform section 2.7.2 of RFC5228 (Comparisons + Across Character Sets). + - Verify validity of utf8 where necessary. +* Further develop regex extension and update it to the latest draft: + - Implement the :quoteregex set modifier + - Investigate the use of the TRE regexp library to gain UTF-8 capability + (posix regexes actually do support utf8, but only when locale is set + accordingly) +* Finish LDAP Sieve script storage for read-only access. + - Consolidate LDAP connections when more than a single Sieve script must be + loaded from different storages linked to the same LDAP server. + - Adjust Sieve script API to support asynchronous script retrieval to + retrieve scripts in parallel when possible. +* Improve error handling. + - Implement dropping errors in the user's mailbox as a mail message. +* Finish body extension: + - Build test cases for decoding MIME encodings to UTF-8 +* Cleanup the test suite + - Restructure test scripts + - Add more comment on purpose of tests +* Finish the ereject extension +* Vacation extension improvements: + - Implement configurable sender exclusion list. + - Implement mechanism for implicitly including an account's aliases in the + vacation command's :addresses list. +* Fix remaining RFC deviations: + - Fix issues listed in doc/rfc/RFC-questions.txt based on answers + - Verify outgoing mail addresses at runtime when necessary + (e.g. after variables substitution) + - Improve handling of invalid addresses in headers (requires Dovecot changes) +* Improve sieve_extprograms plugin: + - Redesign (forcible) local script termination. It should use SIGCHLD and + a ioloop-based timeout. + - Add facility to trigger a temporary failure condition when a program + fails rather than an implicit keep. + - Add a method to implicitly pass environment variables such as SENDER and + RECIPIENT through the script socket service. +* Make testsuite much more exhaustive: + - Add support for testing the content of result actions + - Test as many error/warning/info conditions as possible. + - Review the specification documents and check whether the given requirements + are tested at least once. +* Fix ManageSieve proxy to recognize response codes from the backend and forward + them to the user if appropriate/safe. Probably means implementing a proper + ManageSieve client library. +* Test ManageSieve behavior thoroughly: + - Test pipelined behavior + - Test proxy authentication +* Code cleanup: + - Make address handling more uniform. + - Review all FIXMEs + +* Build a server with test mail accounts that processes lots and lots of mail + (e.g. spam, mailing lists etc.) + +Low priority items: + +* Implement extlists extension as a plugin +* Enotify extension: detect use of variable values extracted from the message + that are used in the method argument. RFC reports this as a security issue. +* Provide a solution for mail_get_headers_utf8 reparsing the whole message each + time it is called (header and address test; Timo might provide solution from + within Dovecot) +* Warn during compile if using non-existent folders. + +* Variables extension: implement compile time evaluation of constant values + - Detect assignment of too large constant values to variables at compile + time. +* Add development documentation, i.e. comment on library functions and document + the binary and byte-code format. +* Implement sip-message notify mechanism. + |