Oswald Buddenhagen
2d1cfc2c7f
make "Patterns *" match INBOX* in Maildir++ Stores
...
this also has the side effect that we won't fail to include INBOX itself
when Inbox is nested under Path when using other SubFolder styles
(regression introduced with Maildir++ support in 0f24ca31b
).
REFMAIL: 1489492069.2148187.910409864.7727F9FC@webmail.messagingengine.com
2017-04-02 17:12:50 +02:00
Oswald Buddenhagen
763cb8341f
make help screen print some more compile time options
2017-04-02 17:12:50 +02:00
Oswald Buddenhagen
28d52b2b18
de-obfuscate cmd_sendable()
...
split the monster conditional and add comments.
2017-04-02 17:12:50 +02:00
Oswald Buddenhagen
0aa4c628df
add comments
2017-04-02 17:12:50 +02:00
Oswald Buddenhagen
34993fbca6
fix sync resumption with aborted entries
...
we need a separate log entry type which does proper mmaxxuid tracking.
while moving code around, this also removes a redundant debug statement.
amends b1842617
.
2017-04-02 17:12:50 +02:00
Oswald Buddenhagen
887b2205ff
remove nonsensical statement from journal replay of aborted entries
...
at this stage, entries cannot possibly have messages assigned to them,
so trying to unlink them makes no sense.
amends b1842617
.
2017-04-02 17:12:50 +02:00
Oswald Buddenhagen
5c2ce59217
fix sync resumption with re-newed messages
...
the UID of the entries needs to be bumped from -1 to -2, as otherwise
the resumed run would see a TUID in a sync entry which may not have one.
2017-04-02 17:12:50 +02:00
Oswald Buddenhagen
7c466fc3e7
don't emit redundant flag updates for re-newed messages
2017-04-02 17:12:50 +02:00
Oswald Buddenhagen
1ea2e69aa7
fix maxuid tracking
...
newmaxuid represents the highest UID for which a sync entry was created,
while maxuid represents the end of the range which is guaranteed to have
been propagated. that means that the former needs to be instantly
incremented (and logged), while the latter must not be touched until the
entire new message sync completes. this matters particularly in the case
of resuming an interrupted run, where sync entry creation must resume
exactly where it left off, while loading the box must use the old limit
to ensure that all messages are available for actual propagation.
2017-04-02 17:12:50 +02:00
Oswald Buddenhagen
6705604c4a
de-duplicate journal replay somewhat
...
we've been using indices to separate master/slave state for a long time,
so there is no point in using pairs of matching brackets to signify the
side in the journal. instead, use somewhat descriptive letters (S[een],
F[ind], T[rashed]) and the index itself.
2017-04-02 17:12:50 +02:00
Oswald Buddenhagen
af4b8896f0
use typedefs for structs more
...
makes the code more compact (and consistent, as typedefs were already
used in some places).
2017-04-02 15:56:30 +02:00
Oswald Buddenhagen
c3350753b0
factor out jFprintf()
2017-04-02 15:24:03 +02:00
Oswald Buddenhagen
1fdf793a3f
fix signedness of 'nex' variables
...
they are derived from srec->status, which is unsigned. for not
understood reasons, the compiler complains only after extending status
to a full unsigned int.
on the way, localize the declarations.
2017-04-02 12:16:57 +02:00
Oswald Buddenhagen
1e939bafd8
don't use strncpy() to copy TUIDs
...
latest since 77acc268
, the code prior to these statements ensures that
the full length is available, so just use memcpy(). the code for
comparing TUIDs uses memcmp() anyway.
2017-04-02 12:16:57 +02:00
Oswald Buddenhagen
d754608f55
autotest: improve valgrind integration
...
introduce recognition of $USE_VALGRIND to run all mbsync invocations
through valgrind.
this also removes the seemingly purposeless --log-fd=3 indirection.
2017-04-01 20:32:36 +02:00
Oswald Buddenhagen
f29bed526b
autotest: write logs to files
...
they can get long, and having actual files also helps with diffing.
2017-04-01 20:32:36 +02:00
Oswald Buddenhagen
991e809c38
autotest: factor out readfile() function
2017-04-01 20:32:36 +02:00
Oswald Buddenhagen
2da7951fe0
autotest: de-duplicate error reporting paths
2017-04-01 20:32:36 +02:00
Oswald Buddenhagen
373abcef02
autotest: print consistent information for journal replay failures
2017-04-01 20:32:36 +02:00
Oswald Buddenhagen
ca43c57e85
autotest: don't print expected result if the mbsync run itself fails
...
there isn't an actual result to compare with anyway.
2017-04-01 20:32:36 +02:00
Oswald Buddenhagen
b4d1a05365
autotest: de-duplicate: use print*() in show*()
...
this actually adds some (minimal) transformation overhead, but it makes
the relationship clearer.
2017-04-01 20:32:36 +02:00
Oswald Buddenhagen
8aed94420f
autotest: determine path of mbsync prior to chdir()
...
that allows tmp/ to be a symlink to a ramdisk.
2017-04-01 20:32:36 +02:00
Oswald Buddenhagen
71ced65fcc
Merge remote-tracking branch 'origin/1.2'
...
Conflicts:
src/sync.c
2017-04-01 20:31:51 +02:00
Oswald Buddenhagen
62808c9003
autotest: use warnings
2017-04-01 20:25:58 +02:00
Oswald Buddenhagen
b45e711da5
autotest: remove stray close() call from printstate()
2017-04-01 20:25:53 +02:00
Oswald Buddenhagen
f934e995d6
don't populate sync record map with invalid UIDs
...
this would obviously just bloat the hash with nonsense, slowing down the
actual lookup later.
2017-03-14 11:36:25 +01:00
Oswald Buddenhagen
f62b3c7be9
fix mislabeling of test
2017-02-15 17:44:35 +01:00
Oswald Buddenhagen
3ebb066aba
make -DN print also the sent data
2017-02-15 17:30:15 +01:00
Oswald Buddenhagen
2457b2baa3
don't arbitrarily limit UIDs to a billion, part 2
...
imap_find_new_msgs() had the same fixed limit as imap_load_box().
amends 815822d8
.
2017-02-15 17:25:59 +01:00
Oswald Buddenhagen
77acc26812
implement Message-Id based UIDVALIDITY recovery
2017-01-21 12:09:01 +01:00
Oswald Buddenhagen
f9fe75602e
don't fetch message size unless necessary
...
when syncing flags but not re-newing non-fetched messages, there is no
need to query the message size for all messages, as the old ones are
queried only for their flags.
2017-01-21 11:41:12 +01:00
Oswald Buddenhagen
ec4b21535f
some reshuffling in maildir_scan() for clarity
2017-01-21 11:41:12 +01:00
Oswald Buddenhagen
3d64f16702
make fetching of partial UID ranges more flexible
...
instead of a single hard-coded branch, use a generic method to split
ranges as needed.
this is of course entirely over-engineered as of now, but subsequent
commits will make good use of it.
2017-01-21 11:41:12 +01:00
Oswald Buddenhagen
1d3b36f89e
factor out app_cr
2017-01-17 22:14:07 +01:00
Oswald Buddenhagen
3dffd68825
factor out copy_msg_convert()
2017-01-17 22:08:49 +01:00
Oswald Buddenhagen
951b7e77f8
factor out copy_msg_bytes()
2017-01-15 13:25:46 +01:00
Oswald Buddenhagen
509a191474
make more use of strnlen()
...
includes adding the so far superfluous prototype for the replacemnt to
common.h.
2016-12-29 15:18:39 +01:00
Oswald Buddenhagen
3eea668052
make use of memchr() in strnlen() replacement after all
...
turns out the comment advising against it was bogus - unlike for
memcmp(), the standard does indeed prescribe that the memchr()
implementation may not read past the first occurrence of the searched
char.
2016-12-29 15:17:04 +01:00
Oswald Buddenhagen
357dd51405
adjust return type of strnlen() replacement
...
it doesn't really matter, but it's nicer to stay consistent with the
official prototype.
2016-12-29 15:17:03 +01:00
Oswald Buddenhagen
67f4aeff1f
standardize on 'int' for message sizes
...
that's what the sources already assumed anyway. size_t is total
overkill, as No Email Ever (TM) will exceed 2GiB.
this also fixes a harmless format string warning in 32 bit builds.
2016-12-29 14:10:35 +01:00
Oswald Buddenhagen
0c36655201
print actually read TUID in debug message
2016-12-26 16:20:27 +01:00
Oswald Buddenhagen
1330f43034
null-terminate lines read from state file & journal
...
makes the subsequent code less convoluted.
2016-12-26 16:20:27 +01:00
Oswald Buddenhagen
879eb623be
mark string_list_t as packed
...
otherwise we'll regularly over-allocate due to the struct's stride.
2016-12-18 22:03:51 +01:00
Oswald Buddenhagen
4db64967c9
make more use of shifted_bit()
...
technically, this introduces a redundant AND, but the compiler is smart
enough to prove that (((A & M) ^ B) & M) == ((A ^ B) & M).
2016-12-18 22:03:51 +01:00
Oswald Buddenhagen
3b615bba3c
make more use of nfstrndup()
2016-12-18 22:03:51 +01:00
Oswald Buddenhagen
22145f6674
document some additional uses for PipelineDepth
2016-12-18 22:03:51 +01:00
Oswald Buddenhagen
ab955ffe6b
Merge branch '1.2'
...
Conflicts:
src/drv_imap.c
2016-12-11 12:52:46 +01:00
Oswald Buddenhagen
743968737c
silence bogus [-Wmaybe-uninitialized] with -O0/-O1/-Os
2016-12-11 12:51:47 +01:00
Oswald Buddenhagen
ef0e7fdd3e
accept NAMESPACE responses without hierarchy delimiter
...
RFC2342 states that the delimiter may be NIL, which some servers
apparently actually make use of.
REFMAIL: CAM0xXk_FQ83CPrd37iQCMKtc1B2P8=u-r5jX0n2WE5Y+3483nQ@mail.gmail.com
2016-12-04 11:26:06 +01:00
Oswald Buddenhagen
03e25db3b8
validate NAMESPACE response earlier
...
... and don't silently fail later on.
2016-12-04 11:14:34 +01:00