isync

mailbox synchronization program
git clone https://git.code.sf.net/p/isync/isync
Log | Files | Refs | README | LICENSE

commit c5e967f94d94c151b9f5ed7900bf09a1e4ff396d
parent 5048521d79342d3e6724a947de5b4a4fac328f13
Author: Oswald Buddenhagen <ossi@users.sf.net>
Date:   Wed, 24 Nov 2021 16:55:52 +0100

add support for LITERAL- extension

it's the same as LITERAL+, only with a strongly limited payload size.

Diffstat:
Msrc/drv_imap.c | 5++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/drv_imap.c b/src/drv_imap.c @@ -234,6 +234,7 @@ enum CAPABILITY { #endif UIDPLUS, LITERALPLUS, + LITERALMINUS, MOVE, NAMESPACE, COMPRESS_DEFLATE @@ -249,6 +250,7 @@ static const char *cap_list[] = { #endif "UIDPLUS", "LITERAL+", + "LITERAL-", "MOVE", "NAMESPACE", "COMPRESS=DEFLATE" @@ -315,7 +317,8 @@ send_imap_cmd( imap_store_t *ctx, imap_cmd_t *cmd ) if (cmd->param.data) { assert( cmdl > 2 && !memcmp( cmd->cmd + cmdl - 2, "+}", 2 ) ); if ((!cmd->param.to_trash || ctx->trashnc != TrashUnknown) && - CAP(LITERALPLUS) && cmd->param.data_len <= 100*1024) { + ((CAP(LITERALPLUS) && cmd->param.data_len <= 100*1024) || + (CAP(LITERALMINUS) && cmd->param.data_len <= 4*1024))) { litplus = 1; } else { cmd->cmd[cmdl - 2] = '}';