Commit message (Collapse) | Author | Age | Files | ||
---|---|---|---|---|---|
... | |||||
* | Factor the SSL code (imaps and STARTTLS). | Guilhem Moulin | 2015-09-11 | 1 | |
| | | | | | | | | Also, add SSL options SINGLE_ECDH_USE, SINGLE_DH_USE, NO_SSLv2, NO_SSLv3 and NO_COMPRESSION to the compiled-in CTX options. And use SSL_MODE_AUTO_RETRY to avoid SSL_read failures during a handshake. | ||||
* | Print IMAP traffic stats when receiving a SIGHUP. | Guilhem Moulin | 2015-09-10 | 1 | |
| | |||||
* | Don't warn that no compression is enabled if the server doesn't support it. | Guilhem Moulin | 2015-09-10 | 1 | |
| | |||||
* | wibble | Guilhem Moulin | 2015-09-10 | 1 | |
| | |||||
* | Bump version. | Guilhem Moulin | 2015-09-09 | 1 | |
| | |||||
* | Refactoring. | Guilhem Moulin | 2015-09-09 | 1 | |
| | |||||
* | Add support for the Binary Content extension [RFC3516]. | Guilhem Moulin | 2015-09-09 | 1 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Unfortunately as of Debian Wheezy it doesn't work for Dovecot with COMPRESS=DEFLATE [RFC4978] and non-synchronizing literals. perl -e 'use Compress::Raw::Zlib; print "a COMPRESS DEFLATE\r\n"; sleep 1; my $d = new Compress::Raw::Zlib::Deflate( -WindowBits => -15 ); $d->deflate("b APPEND TRASH ~{1+}\r\nx\r\n", my $buf); print $buf; $d->flush($buf, Z_SYNC_FLUSH); print $buf; sleep 1; ' | /usr/lib/dovecot/imap imap(guilhem): Panic: stream doesn't support seeking backwards Interestingly, it works just fine for non-binary literals: perl -e 'use Compress::Raw::Zlib; print "a COMPRESS DEFLATE\r\n"; sleep 1; my $d = new Compress::Raw::Zlib::Deflate( -WindowBits => -15 ); $d->deflate("b APPEND TRASH {1+}\r\nx\r\n", my $buf); print $buf; $d->flush($buf, Z_SYNC_FLUSH); print $buf; sleep 1; ' | /usr/lib/dovecot/imap However I can't reproduce the problem Dovecot 2.2.18 and Debian Sid (but it doesn't help to install Dovecot from testing to my Wheezy box.) | ||||
* | Add a configuration option 'null-stderr=YES'. | Guilhem Moulin | 2015-09-09 | 1 | |
| | | | | To send STDERR to /dev/null for type=tunnel. | ||||
* | Add support for the IMAP COMPRESS extension [RFC4978]. | Guilhem Moulin | 2015-09-09 | 1 | |
| | | | | | Also, add traffic statistics after closing the connection to the IMAP server. | ||||
* | Add an option --watch to keep the connections open and wait for changes. | Guilhem Moulin | 2015-09-08 | 1 | |
| | |||||
* | Block SIGINT signals to the children for type=tunnel. | Guilhem Moulin | 2015-09-08 | 1 | |
| | | | | So we can clean after us (and for instance remove the lockfile). | ||||
* | Rename ‘imapsync’ to ‘interimap’. | Guilhem Moulin | 2015-09-07 | 1 | |
| | | | | To avoid confusion with http://imapsync.lamiral.info . | ||||
* | wibble | Guilhem Moulin | 2015-09-06 | 1 | |
| | |||||
* | Message Sequence Match Data: sequence set come before UIDs. | Guilhem Moulin | 2015-09-06 | 1 | |
| | | | | | | Cf. RFC 7162: seq-match-data = "(" known-sequence-set SP known-uid-set ")" | ||||
* | Sample UIDs in SELECT $mailbox (QRESYNC ...) commands. | Guilhem Moulin | 2015-09-05 | 1 | |
| | | | | | | | | | This should avoids most false-positive among messages reported as VANISHED by the server but unknown from the database. The reason for this server behavior is that QRESYNC [RFC7162] doesn't force the server to remember the MODSEQs of EXPUNGEd messages. By passing a sample of known UIDs/sequence numbers we let the server know that the messages have been EXPUNGEd [RFC7162, section 3.2.5.2]. | ||||
* | Add support for SASL-IR (RFC 4959) to save a round-trip in AUTHENTICATE ↵ | Guilhem Moulin | 2015-08-09 | 1 | |
| | | | | commands. | ||||
* | Log high precision timestamps in the logfile. | Guilhem Moulin | 2015-07-31 | 1 | |
| | | | | | Also, don't try to import POSIX or Time::HiRes unless the logfile is configured. | ||||
* | Log debug messages to STDERR unless 'logfile' is set. | Guilhem Moulin | 2015-07-31 | 1 | |
| | | | | | However don't include timestamps to STDERR, that's the job of the syslog. | ||||
* | Log out before exiting. | Guilhem Moulin | 2015-07-30 | 1 | |
| | |||||
* | Don't try to rename children of mailboxes with \NoInferiors or ↵ | Guilhem Moulin | 2015-07-30 | 1 | |
| | | | | \HasNoChildren attribute. | ||||
* | Add a $try parameter to create, delete, rename, etc. | Guilhem Moulin | 2015-07-30 | 1 | |
| | | | | | | And no longer crash when trying to create a mailbox that already exists. This could happen for instance if list-select-opts contains 'SUBSCRIBE' and the mailbox is not subscribed on one side. | ||||
* | Enable fine-grained control on the mailboxes to consider. | Guilhem Moulin | 2015-07-27 | 1 | |
| | | | | | | | | | | | Add 3 options: - list-mailbox - list-select-opts - ignore-mailbox The first two control the initial LIST command, while the last one is a regular expression to filter out mailboxes to exclude from the LIST response. | ||||
* | Drop the 'read-only' option. | Guilhem Moulin | 2015-07-27 | 1 | |
| | | | | | It didn't really work since STORE commands are answered with a tagged OK response for instance. | ||||
* | bugfix: Don't exist with the children's exist status upon error. | Guilhem Moulin | 2015-07-27 | 1 | |
| | |||||
* | No longer try to guess whether a mailbox was deleted or renamed. | Guilhem Moulin | 2015-07-27 | 1 | |
| | | | | | | This was too error-prone. Instead, abort if a naming conflict occurs, and provide explicit commands --delete and --rename to delete or rename a mailbox. | ||||
* | typo | Guilhem Moulin | 2015-07-26 | 1 | |
| | |||||
* | bugfix: Fetching new messages from local and adding them to remote modifies ↵ | Guilhem Moulin | 2015-07-26 | 1 | |
| | | | | | | | its UIDNEXT. So we need to check again the first $source (remote) whenever the last one (local) added new messages to it. | ||||
* | Add an option 'logfile' to log debug messages. | Guilhem Moulin | 2015-07-26 | 1 | |
| | |||||
* | Don't use readline with non-blocking IO. | Guilhem Moulin | 2015-07-26 | 1 | |
| | | | | | | | Instead use the select(2) syscall to see if there data available while we're waiting for notifications. Except for SSL/TLS connections, where we have to check if there is unprocessed cached data in the current SSL frame. | ||||
* | Clean how we're sending commands to the server. | Guilhem Moulin | 2015-07-26 | 1 | |
| | |||||
* | LOGINDISABLED only disables plain-text mechanisms. | Guilhem Moulin | 2015-07-26 | 1 | |
| | | | | Also, LOGIN is always supported. | ||||
* | Add a manpage and improve documentation. | Guilhem Moulin | 2015-07-25 | 1 | |
| | |||||
* | Rename '--check' to '--repair' and improve repairing algorithm. | Guilhem Moulin | 2015-07-25 | 1 | |
| | |||||
* | Bugfix: allow the absence of default section in the config file. | Guilhem Moulin | 2015-07-25 | 1 | |
| | |||||
* | wibble | Guilhem Moulin | 2015-07-25 | 1 | |
| | |||||
* | Detect and handle interrupted syncs to avoid message duplicates. | Guilhem Moulin | 2015-07-25 | 1 | |
| | |||||
* | Pass messages by reference. | Guilhem Moulin | 2015-07-24 | 1 | |
| | |||||
* | bugfix: new messages can be received while FETCHing new messages. | Guilhem Moulin | 2015-07-24 | 1 | |
| | |||||
* | wibble | Guilhem Moulin | 2015-07-24 | 1 | |
| | |||||
* | Exit gracefully when catching a SIGHUP. | Guilhem Moulin | 2015-07-24 | 1 | |
| | |||||
* | Don't prefix logs by a timestamp, that's a syslog thing. | Guilhem Moulin | 2015-07-24 | 1 | |
| | |||||
* | wibble | Guilhem Moulin | 2015-07-24 | 1 | |
| | |||||
* | Add a --check command to verify the synchronization state. | Guilhem Moulin | 2015-07-24 | 1 | |
| | |||||
* | Allow custom database path. | Guilhem Moulin | 2015-07-23 | 1 | |
| | |||||
* | SSL: Allow disabling peer verification. | Guilhem Moulin | 2015-07-23 | 1 | |
| | |||||
* | Add a command-line option --config to specify the configuration file. | Guilhem Moulin | 2015-07-23 | 1 | |
| | |||||
* | bugfix | Guilhem Moulin | 2015-07-23 | 1 | |
| | |||||
* | Add informational messages. | Guilhem Moulin | 2015-07-23 | 1 | |
| | |||||
* | wibble | Guilhem Moulin | 2015-07-23 | 1 | |
| | |||||
* | bugfix | Guilhem Moulin | 2015-07-23 | 1 | |
| |