aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFiles
...
* Remove deprecated/buggy 'o' regexp modifier.Guilhem Moulin2019-11-083
|
* libinterimap: honor compress={Yes/No}.Guilhem Moulin2019-11-082
|
* Refactor logging logic.Guilhem Moulin2019-11-0710
| | | | | | | Also, introduce new option 'logger-prefix' to determine the prefix of each log line. Closes: #942725.
* libinterimap: Don't panic at the end of the compressed stream.Guilhem Moulin2019-11-072
| | | | | Cf. Compress::Raw::Zlib's documentation. Z_STREAM_END denotes a successful state.
* libinterimap: Free reference to $self in _start_ssl().Guilhem Moulin2019-11-071
| | | | | | | | (We don't need the function anymore once the handshake is established). Otherwise the reference count of that IMAP client never gets to 0 before the global destruction phase. For interimap, this causes traffic stats to be printed not by the cleanup() function as intended, but just before the program exits.
* typofixGuilhem Moulin2019-11-071
|
* wibbleGuilhem Moulin2019-11-072
|
* interimap.1.md: Hint to `doveadm-deduplicate` to weed out duplicates.Guilhem Moulin2019-11-061
|
* interimap.1.md: Document that DELETE and RENAME commands should be avoided.Guilhem Moulin2019-11-061
|
* Update copyright years.Guilhem Moulin2019-11-062
|
* interimap.sample: don't hardcode Dovecot's libexec dir.Guilhem Moulin2019-11-061
|
* Allow lowercase SASL mechanisms.Guilhem Moulin2019-11-061
| | | | | | RFC 2222 sec. 3 says that values are “from 1 to 20 characters in length, consisting of upper-case letters, digits, hyphens, and/or underscores” so we always upper-case the value.
* pullimap, interimap: redact AUTHENTICATE and LOGIN commandsGuilhem Moulin2019-11-066
| | | | | | In --debug mode in order to avoid inadvertently receiving credentials in bug reports. --debug can be set twice to spell out these commands in full.
* typofixGuilhem Moulin2019-08-281
|
* libinterimap: use directories relative to $HOME for the XDG defaults.Guilhem Moulin2019-07-082
| | | | | | | | | | | | Previously getpwuid() was called to determine the user's home directory, while the XDG specification explicitely mentions $HOME. Conveniently our docs always mentioned ~/, which on POSIX-compliant systems expands to the value of the variable HOME (and the result is unspecified when the variable is unset). Cf. Shell and Utilities volume of POSIX.1-2017, sec. 2.6.1: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_06_01
* interimap.1: Clarify handling of delimiter in mailbox names.Guilhem Moulin2019-07-072
|
* interimap: clarify that 'ignore-mailbox' is matched against internal names.Guilhem Moulin2019-07-073
| | | | | | | That is, without leading reference, and where the hierarchy delimiter is replaced with null characters. /!\ This changes breaks backward compatibility!
* doc/*: Fix minor space damage.Guilhem Moulin2019-07-063
| | | | Also, set tab size to 4 spaces in the HTML for consistency.
* doc/template.html: Justify paragraphs on larger screens.Guilhem Moulin2019-07-051
|
* doc/*.md: Improve wording.Guilhem Moulin2019-07-053
|
* doc/*.html: Add 'keywords' and 'lang' tags.Guilhem Moulin2019-07-051
|
* doc/template.html: Fix minor space damage.Guilhem Moulin2019-07-051
|
* doc/template.html: Add parent links at the top.Grégoire Détrez2019-07-052
|
* Use mailto: links for names of copyright holders.Guilhem Moulin2019-07-053
|
* typofixGuilhem Moulin2019-07-051
|
* Refactor documentation.Guilhem Moulin2019-07-0511
| | | | | In particular, move manpages to the 'doc' directory, and generate HTML documentation with `make html`.
* Fix minor space damage.Guilhem Moulin2019-07-054
|
* New file doc/development.md.Guilhem Moulin2019-07-051
| | | | | Explaining how to setup a test environment for interimap(1) and pullimap(1).
* test suite: import+dump before comparing SQLite dumps.Gustav Eek2019-06-271
| | | | | The dumping quoting style differ between sqlite versions. Compensate with re-dumping also the reference file
* tests/run: fix minor space damageGuilhem Moulin2019-06-271
|
* test suite: make sqlite3 ignore ~/.sqlitercGuilhem Moulin2019-06-271
|
* `make test`: Only consider tests/*/run.Guilhem Moulin2019-06-031
|
* long-lived tests: sleep between 1ms and 999ms.Guilhem Moulin2019-06-032
| | | | | | | `shuf -n1 -i1-99` produces a number between 1 and 99, hence `sleep "0.$(shuf -n1 -i1-99)"` pauses for some time between 100ms and 990ms. Moreover it's not uniformly distributed as multiples of 100ms (0.100, 0.200, …, 0.900) have twice the probability of other numbers.
* Improve wording.Guilhem Moulin2019-05-301
|
* tests/run: use the current date as Message-ID in `sample_message`.Guilhem Moulin2019-05-281
| | | | | | A random 128-bit UUID obtained from /proc/sys/kernel/random/uuid works too but is Linux-specific and requires the proc(5) pseudo-filesystem to be mounted at /proc.
* typo fixesGuilhem Moulin2019-05-287
|
* Net::IMAP::InterIMAP: call shutdown(2) on teardown also for type=tunnel.Guilhem Moulin2019-05-281
| | | | | | Since we now use socketpair(2) for type=tunnel (instead of a pair of unnamed pipes) we can unify communication endpoints creation and teardown.
* .gitignore update.Guilhem Moulin2019-05-281
|
* Add .gitignore.Gustav Eek2019-05-281
|
* typofixGuilhem Moulin2019-05-282
|
* tests/run: set 'mailbox_list_index = yes' in dovecot.conf.Guilhem Moulin2019-05-281
| | | | | LAYOUT=index requires mailbox_list_index = yes. It's the default since dovecot 2.3, but we set it explicitly to support older versions.
* tests: don't fail when a pid can't be killed.Guilhem Moulin2019-05-283
| | | | (Usually on ESRCH.)
* tests/run: Don't void the command's standard error.Guilhem Moulin2019-05-281
|
* tests/run: Honor $TMPDIR if the variable is set.Guilhem Moulin2019-05-281
| | | | Otherwise use /dev/shm.
* typofixGuilhem Moulin2019-05-271
|
* Manpages: clarify that the tunnel command is run following Perl's `exec` ↵Guilhem Moulin2019-05-273
| | | | | | | | | | | | semantics. It is passed to `/bin/sh -c` when it contains shell metacharacters; and split into words and passed to execvp(3) otherwise. https://perldoc.perl.org/functions/exec.html (Since c8fb54897f046a5a3fb4c1d45dc21fd8bcd882e3 the value no longer needs to stard with a forward slash.)
* Add test-suite (requires dovecot-imapd).Guilhem Moulin2019-05-2760
|
* New option 'list-reference' to specify a reference name.Guilhem Moulin2019-05-274
| | | | | | | | This is useful for synchronizing multiple remote servers against different namespaces belonging to the same local IMAP server (using a different InterIMAP instance for each local namespace ↔ remote synchronization, for instance with the newy provided systemd template unit file).
* libinterimap: use socketpair(2) in tunnel mode.Guilhem Moulin2019-05-273
| | | | | | Rather than two pipe(2). Also, use SOCK_CLOEXEC to save a fcntl() call when setting the close-on-exec flag on the socket (even though Perl will likely call fcntl() anyway).
* interimap: fix handling of mod-sequence values greater or equal than 2 << 63.Guilhem Moulin2019-05-272
| | | | | | | | | | | | | | | SQLite processes every INTEGER values as a 8-byte signed integer, so we need to manually do the conversion from/to uint64_t client-side if we don't want to overflow or receive floats. https://www.sqlite.org/datatype3.html#storage_classes_and_datatypes http://jakegoulding.com/blog/2011/02/06/sqlite-64-bit-integers/ We could also do the same trick for local/remote UIDs, UIDVALITY and UIDNEXT values to slim the database down at the expense of pre/post- processing. (Values of SQLite's INTEGER class are 1, 2, 3, 4, 6, or 8 bytes signed integers depending on the manitudes, so we could save some space for values ≥2³¹.) But that seems a little overkill.