Commit message (Collapse) | Author | Age | Files | ||
---|---|---|---|---|---|
... | |||||
* | Net::IMAP::InterIMAP: quit idling when a time jump of at least 30s is detected | Guilhem Moulin | 2016-03-12 | 1 | |
| | | | | | This forces a write, so we can better detect detect dead peers after hibernation for instance. | ||||
* | Net::IMAP::InterIMAP: set SO_{RCV,SND}TIMEO on the socket so we can detect ↵ | Guilhem Moulin | 2016-03-12 | 1 | |
| | | | | dead peers | ||||
* | Net::IMAP::InterIMAP: set binmode on the socket (and our pipe ends) | Guilhem Moulin | 2016-03-12 | 1 | |
| | |||||
* | Net::IMAP::InterIMAP optimisation: ignore a new message that's immediately ↵ | Guilhem Moulin | 2016-03-12 | 1 | |
| | | | | | | expunged (before we had a chance to sync it) | ||||
* | Net::IMAP::InterIMAP: Don't increase UIDNEXT when receiving EXISTS responses. | Guilhem Moulin | 2016-03-12 | 1 | |
| | | | | | | | | | | | Indeed, if the server sends * n EXISTS * n EXPUNGE meaning a new message is received, and is immediately removed afterwards, the server might have allocated a new UID for the removed message. | ||||
* | wibble | Guilhem Moulin | 2016-03-11 | 1 | |
| | |||||
* | IDLE: fix race condition when an untagged response is received after the DONE | Guilhem Moulin | 2016-03-10 | 1 | |
| | |||||
* | Net::IMAP::InterIMAP: change argument order in slurp and _resp. | Guilhem Moulin | 2016-03-10 | 1 | |
| | |||||
* | Net::IMAP::InterIMAP: don't print undefined cache values in debug messages. | Guilhem Moulin | 2016-03-09 | 1 | |
| | |||||
* | pullimap: keep trying to pull new messages after issuing any IMAP command. | Guilhem Moulin | 2016-03-09 | 1 | |
| | | | | | Indeed we might get an untagged EXISTS response, meaning that a new message has been received meanwhile. | ||||
* | wibble | Guilhem Moulin | 2016-03-09 | 1 | |
| | |||||
* | typo: F_[GS]ETFL → F_[GS]ETFD | Guilhem Moulin | 2016-03-09 | 1 | |
| | |||||
* | Net::IMAP::InterIMAP: try again if connect(2) was interrupted. | Guilhem Moulin | 2016-03-08 | 1 | |
| | |||||
* | wibble | Guilhem Moulin | 2016-03-07 | 1 | |
| | |||||
* | Add an option "purge-after" to remove old messages. | Guilhem Moulin | 2016-03-07 | 1 | |
| | |||||
* | pullimap: Remove "logfile" config option. | Guilhem Moulin | 2016-03-07 | 1 | |
| | |||||
* | typo | Guilhem Moulin | 2016-03-07 | 1 | |
| | |||||
* | Ensure the FD_CLOEXEC bit is 1 on sockets, logger and state files. | Guilhem Moulin | 2016-03-05 | 1 | |
| | |||||
* | pullimap: add support for IMAP IDLE (RFC 2177). | Guilhem Moulin | 2016-03-05 | 1 | |
| | |||||
* | pullimap: mark downloaded messages as \Seen | Guilhem Moulin | 2016-03-05 | 1 | |
| | |||||
* | pullimap (IMAP part only) | Guilhem Moulin | 2016-03-05 | 1 | |
| | |||||
* | Inspect the select(2) syscall's return value. | Guilhem Moulin | 2016-03-04 | 1 | |
| | |||||
* | Relax parsing of continuation requests for for empty resp-text. | Guilhem Moulin | 2016-03-03 | 1 | |
| | | | | | microsoft's IMAP server violates RFC 3501 by skipping the trailing space for empty resp-text. | ||||
* | Don't modify the state when receiving an unsolicited FETCH response without UID | Guilhem Moulin | 2016-03-03 | 1 | |
| | | | | | We require QRESYNC support (RFC 7162) for syncing, which requires UID (MODSEQ) in unsolicited FETCH responses, cf RFC 7162 section 3.2.4. | ||||
* | fix slurp(), useful for IDLE and NOTIFY. | Guilhem Moulin | 2016-03-03 | 1 | |
| | |||||
* | Log and debug messages: don't prefix with a ':' for nameless clients. | Guilhem Moulin | 2016-03-03 | 1 | |
| | |||||
* | Ensure the inbox is always used in upper-case internally. | Guilhem Moulin | 2016-03-03 | 1 | |
| | | | | | | | | | RFC 3501: INBOX is case-insensitive. All case variants of INBOX (e.g., "iNbOx") MUST be interpreted as INBOX not as an astring. An astring which consists of the case-insensitive sequence "I" "N" "B" "O" "X" is considered to be INBOX and not an astring. | ||||
* | Add an option 'SSL_protocols'. | Guilhem Moulin | 2015-10-19 | 1 | |
| | |||||
* | Fix byte count for compression streams. | Guilhem Moulin | 2015-10-06 | 1 | |
| | |||||
* | Bump version number. | Guilhem Moulin | 2015-09-28 | 1 | |
| | |||||
* | Display source UIDs upon APPEND.upstream/0.2 | Guilhem Moulin | 2015-09-22 | 1 | |
| | |||||
* | Use TCP keepalive to detect dead peers. | Guilhem Moulin | 2015-09-21 | 1 | |
| | |||||
* | Move SSL fingerprint verification to the the verify callback. | Guilhem Moulin | 2015-09-16 | 1 | |
| | |||||
* | Display the certificate chain, SSL protocol and cipher in debug mode. | Guilhem Moulin | 2015-09-16 | 1 | |
| | |||||
* | Set X.509 certificate purpose to 'SSL Server' for SSL_verify=YES. | Guilhem Moulin | 2015-09-16 | 1 | |
| | |||||
* | Don't set SO_KEEPALIVE on the socket. | Guilhem Moulin | 2015-09-15 | 1 | |
| | | | | | This is most likely useless in our case since the TCP keepalive time is usually much higher than the IMAP timeout. | ||||
* | Remove support for the Binary Content extension [RFC3516]. | Guilhem Moulin | 2015-09-15 | 1 | |
| | | | | | | | | | | | | | “If the server does not know how to decode the section's CTE, it MUST fail the request and issue a "NO" response that contains the "UNKNOWN-CTE" extended response code.” — [RFC3516 section 4.3] Unfortunately the client doesn't know which message couldn't be decoded, so it can't fallback and use BODY instead. This made ‘use-binary=NO’ pretty much mandatory. Hence we remove support for BINARY [RFC3516]. Instead, we increase the thresold for when to add Zlib full flush points from 4096 to the buffer size (32768). | ||||
* | Add the ability to proxy TCP connections through a SOCKSv5 proxy. | Guilhem Moulin | 2015-09-15 | 1 | |
| | |||||
* | Replace IO::Socket::INET dependency by the lower lever Socket to enable IPv6. | Guilhem Moulin | 2015-09-15 | 1 | |
| | |||||
* | Accept non-fully qualified commands. | Guilhem Moulin | 2015-09-14 | 1 | |
| | |||||
* | Pass literals by reference to save memory. | Guilhem Moulin | 2015-09-14 | 1 | |
| | |||||
* | Replace IO::Socket::SSL dependency by the lower level Net::SSLeay. | Guilhem Moulin | 2015-09-13 | 1 | |
| | | | | | | | | | | | | Also, * Rename the 'SSL_verify_trusted_peer', 'SSL_ca_path', and 'SSL_cipher_list' options to 'SSL_CApath', 'SSL_verify' and 'SSL_cipherlist', respectively. * Add an option 'SSL_CAfile' to specify a file containing trusted certificates to use during server certificate authentication. * Replace Compress::Zlib dependency by the lower level Compress::Raw::Zlib. | ||||
* | Fix detection of boolean options. | Guilhem Moulin | 2015-09-13 | 1 | |
| | |||||
* | Use 0/1 internally for 'NO'/'YES'. | Guilhem Moulin | 2015-09-11 | 1 | |
| | |||||
* | 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 | |
| |