Compare commits
8 commits
Author | SHA1 | Date | |
---|---|---|---|
|
3f1009a839 | ||
|
fd3f4f33ff | ||
|
314287cbb4 | ||
|
b40fb7f281 | ||
|
534ccb326a | ||
|
63c065a127 | ||
|
161a4b1159 | ||
|
9a5920c028 |
7 changed files with 117 additions and 42 deletions
122
ChangeLog
122
ChangeLog
|
@ -1,3 +1,99 @@
|
|||
2006-01-31 16:45 Oswald Buddenhagen <ossi@users.sf.net>
|
||||
|
||||
* configure.in:
|
||||
|
||||
bump version
|
||||
|
||||
2006-01-31 16:21 Oswald Buddenhagen <ossi@users.sf.net>
|
||||
|
||||
* Makefile.am:
|
||||
|
||||
backport: deal with branches in "make log"
|
||||
|
||||
2006-01-31 16:17 Oswald Buddenhagen <ossi@users.sf.net>
|
||||
|
||||
* src/compat/main.c:
|
||||
|
||||
backport: fix 'isync -w' writing .mbsyncrc to a wrong directory
|
||||
|
||||
2006-01-31 16:16 Oswald Buddenhagen <ossi@users.sf.net>
|
||||
|
||||
* src/sync.c:
|
||||
|
||||
backport: less confusing uid ranges in debug
|
||||
|
||||
2006-01-31 16:15 Oswald Buddenhagen <ossi@users.sf.net>
|
||||
|
||||
* configure.in, src/drv_imap.c:
|
||||
|
||||
backport: compile fixes
|
||||
|
||||
2006-01-31 16:12 Oswald Buddenhagen <ossi@users.sf.net>
|
||||
|
||||
* src/sync.c:
|
||||
|
||||
backport:
|
||||
- sanitize flag handling of expired messages
|
||||
- don't record we synced flags if we didn't
|
||||
- remove now superfluous temporary rflags
|
||||
|
||||
2006-01-31 15:25 Oswald Buddenhagen <ossi@users.sf.net>
|
||||
|
||||
* src/util.c:
|
||||
|
||||
backport: flush debug output
|
||||
|
||||
2005-12-22 15:59 Oswald Buddenhagen <ossi@users.sf.net>
|
||||
|
||||
* src/sync.c:
|
||||
|
||||
fix sync entries not being purged due to c&p error.
|
||||
|
||||
2005-12-21 14:04 Oswald Buddenhagen <ossi@users.sf.net>
|
||||
|
||||
* src/drv_maildir.c:
|
||||
|
||||
less confusing error message on invalid mailbox.
|
||||
|
||||
2005-12-18 15:10 Oswald Buddenhagen <ossi@users.sf.net>
|
||||
|
||||
* src/config.c:
|
||||
|
||||
it's beyond me what this memset was supposed to do ...
|
||||
|
||||
2005-12-18 14:41 Oswald Buddenhagen <ossi@users.sf.net>
|
||||
|
||||
* src/: config.c, main.c:
|
||||
|
||||
trailing whitespace
|
||||
|
||||
2005-12-17 14:47 Oswald Buddenhagen <ossi@users.sf.net>
|
||||
|
||||
* src/drv_imap.c:
|
||||
|
||||
revert 1.8 - what was i smoking?! the CREATE argument is already quoted;
|
||||
we just extracted it from the previous command.
|
||||
|
||||
2005-09-29 23:07 Oswald Buddenhagen <ossi@users.sf.net>
|
||||
|
||||
* src/drv_maildir.c:
|
||||
|
||||
make flag changes unset "new" status - unless a ghost is acting in the
|
||||
background, a flag change indicates that the message was at least
|
||||
noticed.
|
||||
|
||||
2005-09-29 23:05 Oswald Buddenhagen <ossi@users.sf.net>
|
||||
|
||||
* src/sync.c:
|
||||
|
||||
don't call the driver's set_flags() if the flags did not change at all.
|
||||
|
||||
2005-09-21 18:14 Oswald Buddenhagen <ossi@users.sf.net>
|
||||
|
||||
* src/drv_imap.c:
|
||||
|
||||
64-bit cleanness
|
||||
|
||||
2005-03-28 12:43 Oswald Buddenhagen <ossi@users.sf.net>
|
||||
|
||||
* src/drv_imap.c:
|
||||
|
@ -213,18 +309,6 @@
|
|||
excessively secure temp file creation.
|
||||
more user friendliness.
|
||||
|
||||
2004-03-23 16:52 Oswald Buddenhagen <ossi@users.sf.net>
|
||||
|
||||
* src/sync.c:
|
||||
|
||||
be cygwin-compliant: don't use link()
|
||||
|
||||
2004-03-22 17:51 Oswald Buddenhagen <ossi@users.sf.net>
|
||||
|
||||
* src/sync.c:
|
||||
|
||||
unscrew file naming scheme
|
||||
|
||||
2004-02-07 16:36 Oswald Buddenhagen <ossi@users.sf.net>
|
||||
|
||||
* src/dotlock.c:
|
||||
|
@ -1066,12 +1150,6 @@
|
|||
|
||||
added -a (--all) flag to synchronize all mailboxes defined in ~/.isyncrc
|
||||
|
||||
2001-06-12 02:32 Michael Elkins <me@sigpipe.org>
|
||||
|
||||
* AUTHORS, README, COPYING, Makefile.am, configure.in, src/main.c:
|
||||
|
||||
initial import
|
||||
|
||||
2001-02-28 02:02 Michael Elkins <me@sigpipe.org>
|
||||
|
||||
* src/: config.c, imap.c:
|
||||
|
@ -1435,11 +1513,3 @@
|
|||
|
||||
Initial revision
|
||||
|
||||
2000-12-20 22:41 Michael Elkins <me@sigpipe.org>
|
||||
|
||||
* AUTHORS, Makefile.am, README, configure.in, src/isync.h,
|
||||
src/main.c, src/imap.c, src/maildir.c, src/sync.c, isync.1,
|
||||
isyncrc.sample:
|
||||
|
||||
initial import
|
||||
|
||||
|
|
|
@ -4,7 +4,8 @@ EXTRA_DIST = debian isync.spec $(bin_SCRIPTS)
|
|||
|
||||
log:
|
||||
@perl -p -e "s/^(\\S+)\\s+(\\S.+\\S)\\s+(\\S+)\\s*\$$/\$$1:'\$$2 <\$$3>'\\n/" < ../CVSROOT/accounts > .usermap
|
||||
cvs2cl -U .usermap --no-wrap --separate-header -I ChangeLog -I NEWS -I TODO -I debian/
|
||||
@if test -f CVS/Tag; then tag=`cut -c2- CVS/Tag`; else tag=trunk; fi; \
|
||||
cvs2cl -U .usermap -F $$tag --no-wrap --separate-header -I ChangeLog -I NEWS -I TODO -I debian/
|
||||
@rm -f .usermap ChangeLog.bak
|
||||
|
||||
deb:
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
AC_INIT(src/isync.h)
|
||||
AM_CONFIG_HEADER(config.h)
|
||||
AM_INIT_AUTOMAKE(isync, 1.0.1)
|
||||
AM_INIT_AUTOMAKE(isync, 1.0.2)
|
||||
|
||||
AM_MAINTAINER_MODE
|
||||
|
||||
|
@ -9,6 +9,7 @@ if test "$GCC" = yes; then
|
|||
CFLAGS="$CFLAGS -pipe -W -Wall -Wshadow -Wstrict-prototypes"
|
||||
fi
|
||||
|
||||
AC_CHECK_HEADERS([sys/filio.h])
|
||||
AC_CHECK_FUNCS(vasprintf)
|
||||
|
||||
AC_CHECK_LIB(socket, socket, [SOCK_LIBS="-lsocket"])
|
||||
|
|
|
@ -331,8 +331,8 @@ main( int argc, char **argv )
|
|||
while ((de = readdir( dir ))) {
|
||||
if (*de->d_name == '.')
|
||||
continue;
|
||||
nfsnprintf( path1, sizeof(path1), "%s/%s/cur", xmaildir, de->d_name );
|
||||
if (stat( path1, &st ) || !S_ISDIR( st.st_mode ))
|
||||
nfsnprintf( path2, sizeof(path2), "%s/%s/cur", xmaildir, de->d_name );
|
||||
if (stat( path2, &st ) || !S_ISDIR( st.st_mode ))
|
||||
continue;
|
||||
global.path = de->d_name;
|
||||
global.box = (inbox && !strcmp( inbox, global.path )) ?
|
||||
|
|
|
@ -31,11 +31,15 @@
|
|||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <stddef.h>
|
||||
#include <limits.h>
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/ioctl.h>
|
||||
#ifdef HAVE_SYS_FILIO_H
|
||||
# include <sys/filio.h>
|
||||
#endif
|
||||
#include <netinet/in.h>
|
||||
#include <netinet/tcp.h>
|
||||
#include <arpa/inet.h>
|
||||
|
|
22
src/sync.c
22
src/sync.c
|
@ -251,7 +251,7 @@ sync_old( int tops, store_t *sctx, store_t *tctx, store_conf_t *tconf, FILE *jfp
|
|||
{
|
||||
driver_t *tdriver = tctx->conf->driver, *sdriver = sctx->conf->driver;
|
||||
int uid, tuid, unex;
|
||||
unsigned char sflags, aflags, dflags, rflags;
|
||||
unsigned char sflags, aflags, dflags;
|
||||
msg_data_t msgdata;
|
||||
|
||||
/* excludes (push) c.3) d.2) d.3) d.4) / (pull) b.3) d.7) d.8) d.9) */
|
||||
|
@ -332,20 +332,18 @@ sync_old( int tops, store_t *sctx, store_t *tctx, store_conf_t *tconf, FILE *jfp
|
|||
unex = 0;
|
||||
if (srec->status & S_EXPIRED) {
|
||||
if (!pull) {
|
||||
if (sflags & F_DELETED) {
|
||||
if (!(sflags & F_FLAGGED))
|
||||
aflags &= ~F_DELETED;
|
||||
} else
|
||||
unex = 1;
|
||||
if ((aflags & ~F_DELETED) || dflags)
|
||||
info( "Info: Flags of expired message changed in (%d,%d)\n", srec->muid, srec->suid );
|
||||
return SYNC_OK;
|
||||
} else {
|
||||
if ((sflags & F_FLAGGED) && !(sflags & F_DELETED)) {
|
||||
unex = 1;
|
||||
dflags |= F_DELETED;
|
||||
}
|
||||
} else
|
||||
return SYNC_OK;
|
||||
}
|
||||
}
|
||||
rflags = (*nflags | aflags) & ~dflags;
|
||||
if ((tops & OP_EXPUNGE) && (rflags & F_DELETED) &&
|
||||
if ((tops & OP_EXPUNGE) && (sflags & F_DELETED) &&
|
||||
(!tctx->conf->trash || tctx->conf->trash_only_new))
|
||||
{
|
||||
aflags &= F_DELETED;
|
||||
|
@ -356,7 +354,7 @@ sync_old( int tops, store_t *sctx, store_t *tctx, store_conf_t *tconf, FILE *jfp
|
|||
case DRV_BOX_BAD: return SYNC_FAIL;
|
||||
default: /* ok */ break;
|
||||
case DRV_OK:
|
||||
*nflags = rflags;
|
||||
*nflags = (*nflags | aflags) & ~dflags;
|
||||
if (unex) {
|
||||
debug( "unexpiring pair(%d,%d)\n", srec->muid, srec->suid );
|
||||
/* log last, so deletion can't be misinterpreted! */
|
||||
|
@ -699,7 +697,7 @@ sync_boxes( store_t *mctx, const char *mname,
|
|||
} else
|
||||
maxwuid = 0;
|
||||
info( "Selecting slave %s... ", sname );
|
||||
debug( "selecting slave [1,%d]\n", maxwuid );
|
||||
debug( maxwuid == INT_MAX ? "selecting slave [1,inf]\n" : "selecting slave [1,%d]\n", maxwuid );
|
||||
switch (sdriver->select( sctx, (sctx->opts & OPEN_OLD) ? 1 : smaxuid + 1, maxwuid, 0, 0 )) {
|
||||
case DRV_STORE_BAD: ret = SYNC_SLAVE_BAD; goto bail;
|
||||
case DRV_BOX_BAD: ret = SYNC_FAIL; goto bail;
|
||||
|
@ -802,7 +800,7 @@ sync_boxes( store_t *mctx, const char *mname,
|
|||
} else
|
||||
maxwuid = 0;
|
||||
info( "Selecting master %s... ", mname );
|
||||
debug( "selecting master [%d,%d]\n", minwuid, maxwuid );
|
||||
debug( maxwuid == INT_MAX ? "selecting master [%d,inf]\n" : "selecting master [%d,%d]\n", minwuid, maxwuid );
|
||||
switch (mdriver->select( mctx, minwuid, maxwuid, mexcs, nmexcs )) {
|
||||
case DRV_STORE_BAD: ret = SYNC_MASTER_BAD; goto finish;
|
||||
case DRV_BOX_BAD: ret = SYNC_FAIL; goto finish;
|
||||
|
|
|
@ -41,6 +41,7 @@ debug( const char *msg, ... )
|
|||
va_start( va, msg );
|
||||
vprintf( msg, va );
|
||||
va_end( va );
|
||||
fflush( stdout );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue