Commit message (Collapse) | Author | Age | Files | |
---|---|---|---|---|
* | libinterimap: honor compress={Yes/No}. | Guilhem Moulin | 2019-11-08 | 1 |
| | ||||
* | Refactor logging logic. | Guilhem Moulin | 2019-11-07 | 1 |
| | | | | | | | 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 Moulin | 2019-11-07 | 1 |
| | | | | | Cf. Compress::Raw::Zlib's documentation. Z_STREAM_END denotes a successful state. | |||
* | libinterimap: Free reference to $self in _start_ssl(). | Guilhem Moulin | 2019-11-07 | 1 |
| | | | | | | | | (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. | |||
* | wibble | Guilhem Moulin | 2019-11-07 | 1 |
| | ||||
* | Update copyright years. | Guilhem Moulin | 2019-11-06 | 1 |
| | ||||
* | Allow lowercase SASL mechanisms. | Guilhem Moulin | 2019-11-06 | 1 |
| | | | | | | 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 commands | Guilhem Moulin | 2019-11-06 | 1 |
| | | | | | | 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. | |||
* | libinterimap: use directories relative to $HOME for the XDG defaults. | Guilhem Moulin | 2019-07-08 | 1 |
| | | | | | | | | | | | | 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 | |||
* | typo fixes | Guilhem Moulin | 2019-05-28 | 1 |
| | ||||
* | Net::IMAP::InterIMAP: call shutdown(2) on teardown also for type=tunnel. | Guilhem Moulin | 2019-05-28 | 1 |
| | | | | | | Since we now use socketpair(2) for type=tunnel (instead of a pair of unnamed pipes) we can unify communication endpoints creation and teardown. | |||
* | libinterimap: use socketpair(2) in tunnel mode. | Guilhem Moulin | 2019-05-27 | 1 |
| | | | | | | 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). | |||
* | libinterimap: astring is 1*ASTRING-CHAR / string. | Guilhem Moulin | 2019-05-27 | 1 |
| | | | | | | | | | | | | | | | Not 1*ATOM-CHAR / string. Also accept LIST responses mailbox names containing '%', '*', or ']'. From RFC 3501: astring = 1*ASTRING-CHAR / string ASTRING-CHAR = ATOM-CHAR / resp-specials list = "LIST" SP mailbox SP list-mailbox list-mailbox = 1*list-char / string list-char = ATOM-CHAR / list-wildcards / resp-specials list-wildcards = "%" / "*" resp-specials = "]" | |||
* | libinterimap: quote() the empty string as "" instead of a 0-length literal. | Guilhem Moulin | 2019-05-27 | 1 |
| | | | | | Compression asside, this saves 3 bytes and one round-trip on servers not supporting non-synchronizing literals, and 4 bytes otherwise. | |||
* | libinterimap: bugfix: fix escaped hierarchy delimiters in LIST reponses. | Guilhem Moulin | 2019-05-27 | 1 |
| | | | | | The were returned as escaped quoted specials, like "\\", not as a single character (backslash in this case). | |||
* | Bump copyright years. | Guilhem Moulin | 2019-01-22 | 1 |
| | ||||
* | Bump version number. | Guilhem Moulin | 2019-01-22 | 1 |
| | ||||
* | Net::IMAP::InterIMAP: add support for TLSv1.3 (on recent enough Net::SSLeay). | Guilhem Moulin | 2019-01-22 | 1 |
| | | | | | | | Also, change "SSL_protocols" default value from "!SSLv2 !SSLv3" to "!SSLv2 !SSLv3 !TLSv1 !TLSv1.1". I.e., only enable TLSv1.2 and later, which is the default in Debian's OpenSSL as of 1.1.1-2, cf. https://tracker.debian.org/news/998835/accepted-openssl-111-2-source-into-unstable/ . | |||
* | Specify minimum Perl and Net::SSLeay versions. | Guilhem Moulin | 2019-01-20 | 1 |
| | ||||
* | pullimap, interimap: Use $XDG_CONFIG_HOME/$NAME/config as config file. | Guilhem Moulin | 2019-01-20 | 1 |
| | ||||
* | Improve ESEARCH response parsing for full RFC 4466 compatibility. | Guilhem Moulin | 2018-05-10 | 1 |
| | ||||
* | typofix | Guilhem Moulin | 2018-05-09 | 1 |
| | ||||
* | Fix uninitialized value $set in quotemeta | Guilhem Moulin | 2018-05-09 | 1 |
| | ||||
* | Add support for untagged ESEARCH responses from RFC 4731. | Guilhem Moulin | 2018-05-09 | 1 |
| | ||||
* | Library: new API idle_start() and idle_stop(). | Guilhem Moulin | 2018-05-09 | 1 |
| | ||||
* | Ensure the lower bound of UID ranges is at least 1. | Guilhem Moulin | 2017-05-29 | 1 |
| | ||||
* | "fingerprint" now only pins the cert's SPKI, not the cert itself. | Guilhem Moulin | 2016-12-01 | 1 |
| | ||||
* | Net::IMAP::InterIMAP, interimap: Add support for IMAP NOTIFY [RFC 5465]. | Guilhem Moulin | 2016-03-12 | 1 |
| | | | | | Unsollicited LIST responses are currently ignored, hence interimap won't detect mailbox creation/deletion/subcription/unsubscription. | |||
* | 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 |
| |