# HG changeset patch # User Heiko Schlittermann (I24) # Date 1298757131 -3600 # Node ID ae4ab6efa94172065fdb655468353142c45ab075 # Parent f7b5502d9e0ca68635621ad4d70cf867f93d3a39 hopefully fixed all rests from plan b diff -r f7b5502d9e0c -r ae4ab6efa941 src.lock_maildirsize --- a/src.lock_maildirsize Thu Feb 24 22:29:59 2011 +0100 +++ b/src.lock_maildirsize Sat Feb 26 22:52:11 2011 +0100 @@ -3,7 +3,7 @@ diff -r 64ab3b627703 src/transports/appendfile.c --- a/src/transports/appendfile.c Thu Feb 24 20:29:56 2011 +0100 -+++ b/src/transports/appendfile.c Thu Feb 24 22:29:28 2011 +0100 ++++ b/src/transports/appendfile.c Sat Feb 26 22:51:42 2011 +0100 @@ -13,6 +13,7 @@ #ifdef SUPPORT_MAILDIR @@ -98,7 +98,7 @@ uschar *renamename = newname; fd = -1; -+ if (lockfd >= 0) hs12_lock(lockfd, F_RDLCK, "delivery"); ++ if (lockfd >= 0) hs12_lock(lockfd, F_RDLCK, "for delivery"); + DEBUG(D_transport) debug_printf("renaming temporary file\n"); @@ -117,7 +117,7 @@ RETURN: +if (lockfd >= 0) + { -+ hs12_lock(lockfd, F_UNLCK, "done delivery"); ++ hs12_lock(lockfd, F_UNLCK, "delivery"); + (void)close(lockfd); + } @@ -125,7 +125,7 @@ if (mbx_lockfd >= 0) diff -r 64ab3b627703 src/transports/appendfile.h --- a/src/transports/appendfile.h Thu Feb 24 20:29:56 2011 +0100 -+++ b/src/transports/appendfile.h Thu Feb 24 22:29:28 2011 +0100 ++++ b/src/transports/appendfile.h Sat Feb 26 22:51:42 2011 +0100 @@ -95,5 +95,8 @@ /* Function that is shared with tf_maildir.c */ @@ -137,7 +137,7 @@ /* End of transports/appendfile.h */ diff -r 64ab3b627703 src/transports/tf_maildir.c --- a/src/transports/tf_maildir.c Thu Feb 24 20:29:56 2011 +0100 -+++ b/src/transports/tf_maildir.c Thu Feb 24 22:29:28 2011 +0100 ++++ b/src/transports/tf_maildir.c Sat Feb 26 22:51:42 2011 +0100 @@ -367,13 +367,16 @@ Returns: >=0 a file descriptor for an open maildirsize file @@ -188,7 +188,7 @@ +need to do this on an extra lockfile, since the maildirsize file itself +gets renamed during the recalculation. */ + -+hs12_lock(lockfd, F_WRLCK, "checking"); ++hs12_lock(lockfd, F_WRLCK, "for checking"); +if (sigalrm_seen) + { + *excuse = string_sprintf("timeout locking %s", lockname); @@ -231,25 +231,11 @@ DEBUG(D_transport) { -@@ -549,6 +571,13 @@ - - RECALCULATE: - -+ //hs12_lock(lockfd, F_WRLCK, "recalc"); -+ if (sigalrm_seen) -+ { -+ *excuse = "timeout while locking for recalc"; -+ return -1; -+ } -+ - if (fd >= 0) (void)close(fd); - old_latest = 0; - filecount = 0; -@@ -588,8 +617,11 @@ +@@ -588,8 +610,11 @@ } } -+ hs12_lock(lockfd, F_UNLCK, "done check"); ++ hs12_lock(lockfd, F_UNLCK, "check"); + + + @@ -260,7 +246,7 @@ *returned_size = size; diff -r 64ab3b627703 src/transports/tf_maildir.h --- a/src/transports/tf_maildir.h Thu Feb 24 20:29:56 2011 +0100 -+++ b/src/transports/tf_maildir.h Thu Feb 24 22:29:28 2011 +0100 ++++ b/src/transports/tf_maildir.h Sat Feb 26 22:51:42 2011 +0100 @@ -16,7 +16,7 @@ uschar *); extern int maildir_ensure_sizefile(uschar *,