]> git.g-eek.se Git - interimap.git/log
interimap.git
5 years agointerimap: Refactor --target handling.
Guilhem Moulin [Sun, 19 May 2019 12:53:08 +0000 (14:53 +0200)]
interimap: Refactor --target handling.

Also, accept comma-separated values for --target.

5 years agointerimap: fail when two non-INBOX LIST replies return different separators.
Guilhem Moulin [Wed, 15 May 2019 23:13:31 +0000 (01:13 +0200)]
interimap: fail when two non-INBOX LIST replies return different separators.

This never happens for a single LIST command, but may happen if
mailboxes from different namespaces are being listed.  The workaround
here is to run a new interimap instance for each namespace.

5 years agointerimap: accept C-style escape sequences in 'list-mailbox'.
Guilhem Moulin [Wed, 15 May 2019 23:05:25 +0000 (01:05 +0200)]
interimap: accept C-style escape sequences in 'list-mailbox'.

This is useful for defining names containing control characters (incl.
\0 for unspecified hierarchy delimiter).

5 years agointerimap: Factor out error throwing.
Guilhem Moulin [Wed, 15 May 2019 15:08:07 +0000 (17:08 +0200)]
interimap: Factor out error throwing.

Also, write which --target to use in --delete command suggestions.

5 years agolibinterimap: astring is 1*ASTRING-CHAR / string.
Guilhem Moulin [Fri, 24 May 2019 21:52:37 +0000 (23:52 +0200)]
libinterimap: astring is 1*ASTRING-CHAR / string.

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   = "]"

5 years agolibinterimap: quote() the empty string as "" instead of a 0-length literal.
Guilhem Moulin [Wed, 15 May 2019 22:06:17 +0000 (00:06 +0200)]
libinterimap: quote() the empty string as "" instead of a 0-length literal.

Compression asside, this saves 3 bytes and one round-trip on servers not
supporting non-synchronizing literals, and 4 bytes otherwise.

5 years agolibinterimap: bugfix: fix escaped hierarchy delimiters in LIST reponses.
Guilhem Moulin [Thu, 9 May 2019 23:03:50 +0000 (01:03 +0200)]
libinterimap: bugfix: fix escaped hierarchy delimiters in LIST reponses.

The were returned as escaped quoted specials, like "\\", not as a single
character (backslash in this case).

5 years agowibble
Guilhem Moulin [Thu, 9 May 2019 15:47:19 +0000 (17:47 +0200)]
wibble

5 years agoPrepare new release.
Guilhem Moulin [Sun, 20 Jan 2019 19:31:14 +0000 (20:31 +0100)]
Prepare new release.

5 years agoBump copyright years.
Guilhem Moulin [Sun, 20 Jan 2019 19:42:56 +0000 (20:42 +0100)]
Bump copyright years.

5 years agoBump version number.
Guilhem Moulin [Sun, 20 Jan 2019 19:29:58 +0000 (20:29 +0100)]
Bump version number.

5 years agoChange e-mail address.
Guilhem Moulin [Sun, 20 Jan 2019 19:26:01 +0000 (20:26 +0100)]
Change e-mail address.

5 years agoNet::IMAP::InterIMAP: add support for TLSv1.3 (on recent enough Net::SSLeay).
Guilhem Moulin [Mon, 21 Jan 2019 22:59:55 +0000 (23:59 +0100)]
Net::IMAP::InterIMAP: add support for TLSv1.3 (on recent enough Net::SSLeay).

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/ .

5 years agopullimap, interimap: don't autocreate statefile or database in long-lived mode.
Guilhem Moulin [Mon, 21 Jan 2019 16:54:53 +0000 (17:54 +0100)]
pullimap, interimap: don't autocreate statefile or database in long-lived mode.

5 years agointerimap.service: use --watch=60 rather than --notify.
Guilhem Moulin [Sun, 20 Jan 2019 19:23:20 +0000 (20:23 +0100)]
interimap.service: use --watch=60 rather than --notify.

5 years agoNote on migrations.
Guilhem Moulin [Sun, 20 Jan 2019 19:16:53 +0000 (20:16 +0100)]
Note on migrations.

5 years agoSpecify minimum Perl and Net::SSLeay versions.
Guilhem Moulin [Sun, 20 Jan 2019 18:55:58 +0000 (19:55 +0100)]
Specify minimum Perl and Net::SSLeay versions.

5 years agopullimap, interimap: Use $XDG_CONFIG_HOME/$NAME/config as config file.
Guilhem Moulin [Sun, 20 Jan 2019 18:55:33 +0000 (19:55 +0100)]
pullimap, interimap: Use $XDG_CONFIG_HOME/$NAME/config as config file.

6 years agotypofix
Guilhem Moulin [Thu, 10 May 2018 21:54:01 +0000 (23:54 +0200)]
typofix

6 years agopullimap: use extended SEARCH (RFC 4731) when available
Guilhem Moulin [Thu, 10 May 2018 15:56:45 +0000 (17:56 +0200)]
pullimap: use extended SEARCH (RFC 4731) when available

6 years agoImprove ESEARCH response parsing for full RFC 4466 compatibility.
Guilhem Moulin [Thu, 10 May 2018 01:35:13 +0000 (03:35 +0200)]
Improve ESEARCH response parsing for full RFC 4466 compatibility.

6 years agoImprove wording.
Guilhem Moulin [Wed, 9 May 2018 01:38:07 +0000 (03:38 +0200)]
Improve wording.

6 years agotypofix
Guilhem Moulin [Tue, 8 May 2018 23:49:37 +0000 (01:49 +0200)]
typofix

6 years agoFix uninitialized value $set in quotemeta
Guilhem Moulin [Tue, 8 May 2018 23:22:32 +0000 (01:22 +0200)]
Fix uninitialized value $set in quotemeta

6 years agoAdd support for untagged ESEARCH responses from RFC 4731.
Guilhem Moulin [Tue, 8 May 2018 23:11:55 +0000 (01:11 +0200)]
Add support for untagged ESEARCH responses from RFC 4731.

6 years agoLibrary: new API idle_start() and idle_stop().
Guilhem Moulin [Tue, 8 May 2018 23:03:28 +0000 (01:03 +0200)]
Library: new API idle_start() and idle_stop().

6 years agoFix manpage generation with pandoc >=2.1
Guilhem Moulin [Thu, 26 Apr 2018 14:51:23 +0000 (16:51 +0200)]
Fix manpage generation with pandoc >=2.1

7 years agoAdd missing changelog entry.
Guilhem Moulin [Sat, 29 Jul 2017 11:38:46 +0000 (13:38 +0200)]
Add missing changelog entry.

7 years agoFix manpage generation with pandoc >=1.18.
Guilhem Moulin [Sat, 29 Jul 2017 11:36:29 +0000 (13:36 +0200)]
Fix manpage generation with pandoc >=1.18.

7 years agoEnsure the lower bound of UID ranges is at least 1.
Guilhem Moulin [Mon, 29 May 2017 16:04:19 +0000 (18:04 +0200)]
Ensure the lower bound of UID ranges is at least 1.

7 years agoMinor manpage fixes.
Guilhem Moulin [Tue, 6 Dec 2016 16:51:04 +0000 (17:51 +0100)]
Minor manpage fixes.

7 years agopullimap: replace non RFC 5321-compliant envelope sender addresses by <>.
Guilhem Moulin [Tue, 6 Dec 2016 15:40:40 +0000 (16:40 +0100)]
pullimap: replace non RFC 5321-compliant envelope sender addresses by <>.

7 years agointerimap.service: s/--watch/--notify/.
Guilhem Moulin [Thu, 1 Dec 2016 14:35:39 +0000 (15:35 +0100)]
interimap.service: s/--watch/--notify/.

7 years agoUpdate changelog.
Guilhem Moulin [Thu, 1 Dec 2016 13:39:29 +0000 (14:39 +0100)]
Update changelog.

7 years agowibble
Guilhem Moulin [Thu, 1 Dec 2016 13:28:29 +0000 (14:28 +0100)]
wibble

7 years ago"fingerprint" now only pins the cert's SPKI, not the cert itself.
Guilhem Moulin [Thu, 1 Dec 2016 13:26:37 +0000 (14:26 +0100)]
"fingerprint" now only pins the cert's SPKI, not the cert itself.

8 years agobugfix: when resuming a sync, only consider UIDs greater than a known UIDNEXT.
Guilhem Moulin [Tue, 22 Nov 2016 18:41:46 +0000 (19:41 +0100)]
bugfix: when resuming a sync, only consider UIDs greater than a known UIDNEXT.

8 years agowibble
Guilhem Moulin [Tue, 22 Nov 2016 18:38:36 +0000 (19:38 +0100)]
wibble

8 years agowibble
Guilhem Moulin [Sat, 25 Jun 2016 19:28:32 +0000 (21:28 +0200)]
wibble

8 years agopullimap: quote the local part if need be (cf. RFC 5321).
Guilhem Moulin [Sat, 25 Jun 2016 16:34:58 +0000 (18:34 +0200)]
pullimap: quote the local part if need be (cf. RFC 5321).

8 years agowibble
Guilhem Moulin [Mon, 13 Jun 2016 20:34:56 +0000 (22:34 +0200)]
wibble

8 years agopullimap: enable locally unsetting the 'purge-after' option.
Guilhem Moulin [Sun, 12 Jun 2016 20:18:43 +0000 (22:18 +0200)]
pullimap: enable locally unsetting the 'purge-after' option.

8 years agopullimap: Clean up PATH.
Guilhem Moulin [Sun, 12 Jun 2016 20:17:44 +0000 (22:17 +0200)]
pullimap: Clean up PATH.

8 years agopullimap: precise that the mailbox needs to be UTF-7 encoded and unquoted.
Guilhem Moulin [Sun, 13 Mar 2016 17:44:24 +0000 (18:44 +0100)]
pullimap: precise that the mailbox needs to be UTF-7 encoded and unquoted.

8 years agopullimap: fix struct flock packing
Guilhem Moulin [Sun, 13 Mar 2016 15:23:26 +0000 (16:23 +0100)]
pullimap: fix struct flock packing

8 years agointerimap: reformulation in manpage
Guilhem Moulin [Sun, 13 Mar 2016 03:02:27 +0000 (04:02 +0100)]
interimap: reformulation in manpage

8 years agointerimap: Fix watch value when --watch is not set.
Guilhem Moulin [Sat, 12 Mar 2016 23:01:27 +0000 (00:01 +0100)]
interimap: Fix watch value when --watch is not set.

8 years agotypo
Guilhem Moulin [Sat, 12 Mar 2016 22:47:39 +0000 (23:47 +0100)]
typo

8 years agopullimap: use fcntl(2) not flock(2) to lock the statefile.
Guilhem Moulin [Sat, 12 Mar 2016 22:38:53 +0000 (23:38 +0100)]
pullimap: use fcntl(2) not flock(2) to lock the statefile.

8 years agointerimap: use SQLite's own locking mechanism to lock down the database.
Guilhem Moulin [Sat, 12 Mar 2016 22:35:59 +0000 (23:35 +0100)]
interimap: use SQLite's own locking mechanism to lock down the database.

(instead of rolling our own)

8 years agopunct
Guilhem Moulin [Sat, 12 Mar 2016 21:46:46 +0000 (22:46 +0100)]
punct

8 years agoUse a monotype font for IMAP extensions.
Guilhem Moulin [Sat, 12 Mar 2016 21:43:14 +0000 (22:43 +0100)]
Use a monotype font for IMAP extensions.

8 years agoNet::IMAP::InterIMAP, interimap: Add support for IMAP NOTIFY [RFC 5465].
Guilhem Moulin [Sat, 12 Mar 2016 21:14:39 +0000 (22:14 +0100)]
Net::IMAP::InterIMAP, interimap: Add support for IMAP NOTIFY [RFC 5465].

Unsollicited LIST responses are currently ignored, hence interimap won't
detect mailbox creation/deletion/subcription/unsubscription.

8 years agointerimap: fix memory leak.
Guilhem Moulin [Sat, 12 Mar 2016 02:32:27 +0000 (03:32 +0100)]
interimap: fix memory leak.

8 years agoNet::IMAP::InterIMAP: quit idling when a time jump of at least 30s is detected
Guilhem Moulin [Sat, 12 Mar 2016 00:10:30 +0000 (01:10 +0100)]
Net::IMAP::InterIMAP: quit idling when a time jump of at least 30s is detected

This forces a write, so we can better detect detect dead peers after
hibernation for instance.

8 years agoNet::IMAP::InterIMAP: set SO_{RCV,SND}TIMEO on the socket so we can detect dead peers
Guilhem Moulin [Fri, 11 Mar 2016 23:52:42 +0000 (00:52 +0100)]
Net::IMAP::InterIMAP: set SO_{RCV,SND}TIMEO on the socket so we can detect dead peers

8 years agoNet::IMAP::InterIMAP: set binmode on the socket (and our pipe ends)
Guilhem Moulin [Fri, 11 Mar 2016 23:52:04 +0000 (00:52 +0100)]
Net::IMAP::InterIMAP: set binmode on the socket (and our pipe ends)

8 years agoNet::IMAP::InterIMAP optimisation: ignore a new message that's immediately expunged
Guilhem Moulin [Fri, 11 Mar 2016 23:50:26 +0000 (00:50 +0100)]
Net::IMAP::InterIMAP optimisation: ignore a new message that's immediately expunged

(before we had a chance to sync it)

8 years agoNet::IMAP::InterIMAP: Don't increase UIDNEXT when receiving EXISTS responses.
Guilhem Moulin [Fri, 11 Mar 2016 21:04:17 +0000 (22:04 +0100)]
Net::IMAP::InterIMAP: Don't increase UIDNEXT when receiving EXISTS responses.

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.

8 years agowibble
Guilhem Moulin [Fri, 11 Mar 2016 19:57:24 +0000 (20:57 +0100)]
wibble

8 years agoExplicitly specify inner links for older pandoc.
Guilhem Moulin [Fri, 11 Mar 2016 18:41:13 +0000 (19:41 +0100)]
Explicitly specify inner links for older pandoc.

8 years agointerimap: convert manpage to markdown.
Guilhem Moulin [Fri, 11 Mar 2016 18:32:05 +0000 (19:32 +0100)]
interimap: convert manpage to markdown.

8 years agopullimap: honor the the four-space rule in the markdown.
Guilhem Moulin [Fri, 11 Mar 2016 13:29:52 +0000 (14:29 +0100)]
pullimap: honor the the four-space rule in the markdown.

8 years agopullimap: improve manpage.
Guilhem Moulin [Fri, 11 Mar 2016 13:11:14 +0000 (14:11 +0100)]
pullimap: improve manpage.

8 years agowibble
Guilhem Moulin [Fri, 11 Mar 2016 03:09:53 +0000 (04:09 +0100)]
wibble

8 years agopullimap.md: Fix pandoc syntax.
Guilhem Moulin [Fri, 11 Mar 2016 02:47:11 +0000 (03:47 +0100)]
pullimap.md: Fix pandoc syntax.

8 years agoConvert pullimap's manpage to pandoc.
Guilhem Moulin [Fri, 11 Mar 2016 02:08:21 +0000 (03:08 +0100)]
Convert pullimap's manpage to pandoc.

8 years agoIDLE: fix race condition when an untagged response is received after the DONE
Guilhem Moulin [Thu, 10 Mar 2016 22:46:50 +0000 (23:46 +0100)]
IDLE: fix race condition when an untagged response is received after the DONE

8 years agoNet::IMAP::InterIMAP: change argument order in slurp and _resp.
Guilhem Moulin [Thu, 10 Mar 2016 22:38:33 +0000 (23:38 +0100)]
Net::IMAP::InterIMAP: change argument order in slurp and _resp.

8 years agopullimap: check all print statements to the SMTP socket.
Guilhem Moulin [Thu, 10 Mar 2016 00:34:13 +0000 (01:34 +0100)]
pullimap: check all print statements to the SMTP socket.

8 years agoNet::IMAP::InterIMAP: don't print undefined cache values in debug messages.
Guilhem Moulin [Wed, 9 Mar 2016 20:14:40 +0000 (21:14 +0100)]
Net::IMAP::InterIMAP: don't print undefined cache values in debug messages.

8 years agopullimap: keep trying to pull new messages after issuing any IMAP command.
Guilhem Moulin [Wed, 9 Mar 2016 19:59:14 +0000 (20:59 +0100)]
pullimap: keep trying to pull new messages after issuing any IMAP command.

Indeed we might get an untagged EXISTS response, meaning that a new
message has been received meanwhile.

8 years agopullimap.1: Work around groff_www rendering bug with nested lists.
Guilhem Moulin [Wed, 9 Mar 2016 19:28:31 +0000 (20:28 +0100)]
pullimap.1: Work around groff_www rendering bug with nested lists.

8 years agoImprove mailto: link for groff_www.
Guilhem Moulin [Wed, 9 Mar 2016 19:12:03 +0000 (20:12 +0100)]
Improve mailto: link for groff_www.

8 years agopullimap: add control flow details in the manpage.
Guilhem Moulin [Wed, 9 Mar 2016 16:18:07 +0000 (17:18 +0100)]
pullimap: add control flow details in the manpage.

8 years agowibble
Guilhem Moulin [Wed, 9 Mar 2016 15:02:29 +0000 (16:02 +0100)]
wibble

8 years agotypo: F_[GS]ETFL → F_[GS]ETFD
Guilhem Moulin [Wed, 9 Mar 2016 14:34:39 +0000 (15:34 +0100)]
typo: F_[GS]ETFL → F_[GS]ETFD

8 years agopullimap: purge old messages every 12h.
Guilhem Moulin [Wed, 9 Mar 2016 14:04:20 +0000 (15:04 +0100)]
pullimap: purge old messages every 12h.

8 years agointerimap: improve manpage.
Guilhem Moulin [Tue, 8 Mar 2016 21:56:53 +0000 (22:56 +0100)]
interimap: improve manpage.

8 years agopullimap: add systemd service unit file.
Guilhem Moulin [Tue, 8 Mar 2016 17:03:08 +0000 (18:03 +0100)]
pullimap: add systemd service unit file.

8 years agopullimap: Don't rely on the last purged timestamp when purge-after=0.
Guilhem Moulin [Tue, 8 Mar 2016 17:02:10 +0000 (18:02 +0100)]
pullimap: Don't rely on the last purged timestamp when purge-after=0.

8 years agopullimap: don't FETCH messages BODY if --no-delivery is set.
Guilhem Moulin [Tue, 8 Mar 2016 16:49:47 +0000 (17:49 +0100)]
pullimap: don't FETCH messages BODY if --no-delivery is set.

8 years agopullimap: improve doc.
Guilhem Moulin [Tue, 8 Mar 2016 16:43:14 +0000 (17:43 +0100)]
pullimap: improve doc.

8 years agoNet::IMAP::InterIMAP: try again if connect(2) was interrupted.
Guilhem Moulin [Tue, 8 Mar 2016 16:30:48 +0000 (17:30 +0100)]
Net::IMAP::InterIMAP: try again if connect(2) was interrupted.

8 years agopullimap: set keepalive options on socket.
Guilhem Moulin [Mon, 7 Mar 2016 23:01:02 +0000 (00:01 +0100)]
pullimap: set keepalive options on socket.

8 years agopullimap: add section name in debug messages.
Guilhem Moulin [Mon, 7 Mar 2016 22:34:08 +0000 (23:34 +0100)]
pullimap: add section name in debug messages.

8 years agopullimap: typo
Guilhem Moulin [Mon, 7 Mar 2016 22:33:45 +0000 (23:33 +0100)]
pullimap: typo

8 years agospellcheck
Guilhem Moulin [Mon, 7 Mar 2016 17:33:42 +0000 (18:33 +0100)]
spellcheck

8 years agopullimap: add a manpage and a configuration file.
Guilhem Moulin [Mon, 7 Mar 2016 16:33:03 +0000 (17:33 +0100)]
pullimap: add a manpage and a configuration file.

8 years agowibble
Guilhem Moulin [Mon, 7 Mar 2016 16:32:29 +0000 (17:32 +0100)]
wibble

8 years agoAdd an option "purge-after" to remove old messages.
Guilhem Moulin [Mon, 7 Mar 2016 15:01:51 +0000 (16:01 +0100)]
Add an option "purge-after" to remove old messages.

8 years agopullimap: Remove "logfile" config option.
Guilhem Moulin [Mon, 7 Mar 2016 12:32:13 +0000 (13:32 +0100)]
pullimap: Remove "logfile" config option.

8 years agopullimap: add an option '--no-delivery' to prevent SMTP/LMTP delivery.
Guilhem Moulin [Mon, 7 Mar 2016 12:30:01 +0000 (13:30 +0100)]
pullimap: add an option '--no-delivery' to prevent SMTP/LMTP delivery.

8 years agotypo
Guilhem Moulin [Mon, 7 Mar 2016 10:40:38 +0000 (11:40 +0100)]
typo

8 years agoEnsure the FD_CLOEXEC bit is 1 on sockets, logger and state files.
Guilhem Moulin [Sat, 5 Mar 2016 18:49:08 +0000 (19:49 +0100)]
Ensure the FD_CLOEXEC bit is 1 on sockets, logger and state files.

8 years agoTerminate the SMTP transmission channel gracefully.
Guilhem Moulin [Sat, 5 Mar 2016 18:36:20 +0000 (19:36 +0100)]
Terminate the SMTP transmission channel gracefully.

8 years agopullimap: add support for IMAP IDLE (RFC 2177).
Guilhem Moulin [Sat, 5 Mar 2016 17:36:07 +0000 (18:36 +0100)]
pullimap: add support for IMAP IDLE (RFC 2177).

8 years agopullimap: add support for SMTP pipelining (RFC 2920)
Guilhem Moulin [Sat, 5 Mar 2016 17:15:25 +0000 (18:15 +0100)]
pullimap: add support for SMTP pipelining (RFC 2920)

8 years agopullimap: add sendmail feature (SMTP/LMTP client).
Guilhem Moulin [Sat, 5 Mar 2016 16:57:08 +0000 (17:57 +0100)]
pullimap: add sendmail feature (SMTP/LMTP client).

8 years agopullimap: mark downloaded messages as \Seen
Guilhem Moulin [Sat, 5 Mar 2016 14:52:27 +0000 (15:52 +0100)]
pullimap: mark downloaded messages as \Seen