Merge remote-tracking branch 'origin/1.2'

Conflicts:
	src/sync.c
This commit is contained in:
Oswald Buddenhagen 2017-04-01 20:31:51 +02:00
commit 71ced65fcc
4 changed files with 20 additions and 6 deletions

View File

@ -39,7 +39,7 @@ typedef struct store_conf {
const char *flat_delim;
const char *map_inbox;
const char *trash;
uint max_size; /* off_t is overkill */
int max_size; /* off_t is overkill */
char trash_remote_new, trash_only_new;
} store_conf_t;
@ -65,7 +65,7 @@ typedef struct message {
struct sync_rec *srec;
char *msgid; /* owned */
/* string_list_t *keywords; */
size_t size; /* zero implies "not fetched" */
int size; /* zero implies "not fetched" */
int uid;
uchar flags, status;
char tuid[TUIDL];

View File

@ -304,6 +304,12 @@ send_imap_cmd( imap_store_t *ctx, struct imap_cmd *cmd )
iov[0].len = bufl;
iov[0].takeOwn = KeepOwn;
if (litplus) {
if (DFlags & DEBUG_NET_ALL) {
printf( "%s>>>>>>>>>\n", ctx->label );
fwrite( cmd->param.data, cmd->param.data_len, 1, stdout );
printf( "%s>>>>>>>>>\n", ctx->label );
fflush( stdout );
}
iov[1].buf = cmd->param.data;
iov[1].len = cmd->param.data_len;
iov[1].takeOwn = GiveOwn;
@ -1363,6 +1369,12 @@ imap_socket_read( void *aux )
if (cmdp->param.data) {
if (cmdp->param.to_trash)
ctx->trashnc = TrashKnown; /* Can't get NO [TRYCREATE] any more. */
if (DFlags & DEBUG_NET_ALL) {
printf( "%s>>>>>>>>>\n", ctx->label );
fwrite( cmdp->param.data, cmdp->param.data_len, 1, stdout );
printf( "%s>>>>>>>>>\n", ctx->label );
fflush( stdout );
}
iov[0].buf = cmdp->param.data;
iov[0].len = cmdp->param.data_len;
iov[0].takeOwn = GiveOwn;
@ -2715,7 +2727,7 @@ imap_find_new_msgs_p2( imap_store_t *ctx, struct imap_cmd *gcmd, int response )
}
INIT_IMAP_CMD(imap_cmd_simple, cmd, cmdp->gen.callback, cmdp->gen.callback_aux)
imap_exec( (imap_store_t *)ctx, &cmd->gen, imap_done_simple_box,
"UID FETCH %d:1000000000 (UID BODY.PEEK[HEADER.FIELDS (X-TUID)])", cmdp->uid );
"UID FETCH %d:" stringify(INT_MAX) " (UID BODY.PEEK[HEADER.FIELDS (X-TUID)])", cmdp->uid );
}
/******************* imap_list_store *******************/

View File

@ -16,6 +16,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
use warnings;
use strict;
use File::Path;
@ -222,7 +223,7 @@ my @X51 = (
[ 6, 3, 0,
2, 2, "FS", 4, 4, "", 5, 5, "", 6, 6, "" ],
);
test("max messages + expire", \@x50, \@X51, @O51);
test("max messages + expunge", \@x50, \@X51, @O51);
################################################################################
@ -603,7 +604,6 @@ sub printstate(@)
print shift(@t).", ".shift(@t).", \"".shift(@t)."\"";
}
print " ],\n";
close FILE;
}
# \@chan_state

View File

@ -1396,6 +1396,8 @@ box_loaded( int sts, void *aux )
if (srec->status & S_DEAD)
continue;
uid = srec->uid[t];
if (uid <= 0)
continue;
idx = (uint)((uint)uid * 1103515245U) % hashsz;
while (srecmap[idx].uid)
if (++idx == hashsz)
@ -1409,7 +1411,7 @@ box_loaded( int sts, void *aux )
uid = tmsg->uid;
if (DFlags & DEBUG_SYNC) {
make_flags( tmsg->flags, fbuf );
printf( tmsg->size ? " message %5d, %-4s, %6lu: " : " message %5d, %-4s: ", uid, fbuf, tmsg->size );
printf( tmsg->size ? " message %5d, %-4s, %6d: " : " message %5d, %-4s: ", uid, fbuf, tmsg->size );
}
idx = (uint)((uint)uid * 1103515245U) % hashsz;
while (srecmap[idx].uid) {