src.lock_maildirsize
changeset 10 b4b103566960
parent 8 282974b20ef8
child 11 203878d58792
equal deleted inserted replaced
9:e566d12d3a48 10:b4b103566960
     1 # HG changeset patch
     1 # HG changeset patch
     2 # Parent d54ee7005f7f7b5970ce45caf7487a9fd929e55f
     2 # Parent 68c3fb9c52b0af6e32558b20d60b34d0cc9daef4
     3 
     3 
     4 diff -r d54ee7005f7f Local/Makefile
     4 diff -r 68c3fb9c52b0 OS/Makefile-Linux
     5 --- a/Local/Makefile	Mon Feb 21 22:52:42 2011 +0100
     5 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6 +++ b/Local/Makefile	Wed Feb 23 00:53:43 2011 +0100
     6 +++ b/OS/Makefile-Linux	Thu Feb 24 10:42:47 2011 +0100
     7 @@ -1,4 +1,5 @@
     7 @@ -0,0 +1,33 @@
     8  # $Cambridge: exim/src/src/EDITME,v 1.27 2010/06/12 15:21:25 jetmore Exp $
     8 +# $Cambridge: exim/src/OS/Makefile-Linux,v 1.4 2008/08/11 15:30:02 fanf2 Exp $
     9 +EXTRALIBS_EXIM=-lrt
     9 +
    10  
    10 +# Exim: OS-specific make file for Linux. This is for modern Linuxes,
    11  ##################################################
    11 +# which use libc6.
    12  #          The Exim mail transport agent         #
    12 +
    13 diff -r d54ee7005f7f src/transports/appendfile.c
    13 +HAVE_ICONV=yes
    14 --- a/src/transports/appendfile.c	Mon Feb 21 22:52:42 2011 +0100
    14 +
    15 +++ b/src/transports/appendfile.c	Wed Feb 23 00:53:43 2011 +0100
    15 +BASENAME_COMMAND=look_for_it
       
    16 +CHOWN_COMMAND=look_for_it
       
    17 +CHGRP_COMMAND=look_for_it
       
    18 +CHMOD_COMMAND=look_for_it
       
    19 +
       
    20 +CFLAGS=-O -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
       
    21 +CFLAGS_DYNAMIC=-shared -rdynamic
       
    22 +
       
    23 +DBMLIB = -ldb
       
    24 +USE_DB = yes
       
    25 +
       
    26 +LIBS = -lnsl -lcrypt -lm -lrt
       
    27 +LIBRESOLV = -lresolv
       
    28 +
       
    29 +X11=/usr/X11R6
       
    30 +XINCLUDE=-I$(X11)/include
       
    31 +XLFLAGS=-L$(X11)/lib
       
    32 +X11_LD_LIB=$(X11)/lib
       
    33 +
       
    34 +EXIWHAT_PS_ARG=ax
       
    35 +EXIWHAT_EGREP_ARG='/exim( |$$)'
       
    36 +EXIWHAT_MULTIKILL_CMD=killall
       
    37 +EXIWHAT_MULTIKILL_ARG=exim
       
    38 +EXIWHAT_KILL_SIGNAL=-USR1
       
    39 +
       
    40 +# End
       
    41 diff -r 68c3fb9c52b0 src/transports/appendfile.c
       
    42 --- a/src/transports/appendfile.c	Thu Feb 24 10:39:43 2011 +0100
       
    43 +++ b/src/transports/appendfile.c	Thu Feb 24 10:42:47 2011 +0100
    16 @@ -13,6 +13,7 @@
    44 @@ -13,6 +13,7 @@
    17  
    45  
    18  #ifdef SUPPORT_MAILDIR
    46  #ifdef SUPPORT_MAILDIR
    19  #include "tf_maildir.h"
    47  #include "tf_maildir.h"
    20 +extern int lockfd;				/* from tf_maildir */	// hs12
    48 +extern int lockfd;				/* from tf_maildir */	// hs12
   130 +	(void)close(lockfd);
   158 +	(void)close(lockfd);
   131 +	}
   159 +	}
   132  
   160  
   133  #ifdef SUPPORT_MBX
   161  #ifdef SUPPORT_MBX
   134  if (mbx_lockfd >= 0)
   162  if (mbx_lockfd >= 0)
   135 diff -r d54ee7005f7f src/transports/appendfile.h
   163 diff -r 68c3fb9c52b0 src/transports/appendfile.h
   136 --- a/src/transports/appendfile.h	Mon Feb 21 22:52:42 2011 +0100
   164 --- a/src/transports/appendfile.h	Thu Feb 24 10:39:43 2011 +0100
   137 +++ b/src/transports/appendfile.h	Wed Feb 23 00:53:43 2011 +0100
   165 +++ b/src/transports/appendfile.h	Thu Feb 24 10:42:47 2011 +0100
   138 @@ -95,5 +95,8 @@
   166 @@ -95,5 +95,8 @@
   139  /* Function that is shared with tf_maildir.c */
   167  /* Function that is shared with tf_maildir.c */
   140  
   168  
   141  extern off_t  check_dir_size(uschar *, int *, const pcre *);
   169  extern off_t  check_dir_size(uschar *, int *, const pcre *);
   142 +extern int apply_lock(int fd, int fcntltype, BOOL dofcntl, int fcntltime, BOOL doflock,
   170 +extern int apply_lock(int fd, int fcntltype, BOOL dofcntl, int fcntltime, BOOL doflock,
   143 +    int flocktime);
   171 +    int flocktime);
   144 +
   172 +
   145  
   173  
   146  /* End of transports/appendfile.h */
   174  /* End of transports/appendfile.h */
   147 diff -r d54ee7005f7f src/transports/tf_maildir.c
   175 diff -r 68c3fb9c52b0 src/transports/tf_maildir.c
   148 --- a/src/transports/tf_maildir.c	Mon Feb 21 22:52:42 2011 +0100
   176 --- a/src/transports/tf_maildir.c	Thu Feb 24 10:39:43 2011 +0100
   149 +++ b/src/transports/tf_maildir.c	Wed Feb 23 00:53:43 2011 +0100
   177 +++ b/src/transports/tf_maildir.c	Thu Feb 24 10:42:47 2011 +0100
   150 @@ -367,13 +367,16 @@
   178 @@ -367,13 +367,16 @@
   151  
   179  
   152  Returns:           >=0  a file descriptor for an open maildirsize file
   180  Returns:           >=0  a file descriptor for an open maildirsize file
   153                     -1   there was an error opening or accessing the file
   181                     -1   there was an error opening or accessing the file
   154 +				        or locking
   182 +				        or locking
   269  /* Return the sizes and the file descriptor, if any */
   297  /* Return the sizes and the file descriptor, if any */
   270 -
   298 -
   271  DEBUG(D_transport) debug_printf("returning maildir size=" OFF_T_FMT
   299  DEBUG(D_transport) debug_printf("returning maildir size=" OFF_T_FMT
   272    " filecount=%d\n", size, filecount);
   300    " filecount=%d\n", size, filecount);
   273  *returned_size = size;
   301  *returned_size = size;
   274 diff -r d54ee7005f7f src/transports/tf_maildir.h
   302 diff -r 68c3fb9c52b0 src/transports/tf_maildir.h
   275 --- a/src/transports/tf_maildir.h	Mon Feb 21 22:52:42 2011 +0100
   303 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   276 +++ b/src/transports/tf_maildir.h	Wed Feb 23 00:53:43 2011 +0100
   304 +++ b/src/transports/tf_maildir.h	Thu Feb 24 10:42:47 2011 +0100
   277 @@ -16,7 +16,7 @@
   305 @@ -0,0 +1,22 @@
   278                  uschar *);
   306 +/* $Cambridge: exim/src/src/transports/tf_maildir.h,v 1.7 2009/11/16 19:56:54 nm4 Exp $ */
   279  extern int    maildir_ensure_sizefile(uschar *,
   307 +
   280                  appendfile_transport_options_block *, const pcre *,
   308 +/*************************************************
   281 -                const pcre *, off_t *, int *);
   309 +*     Exim - an Internet mail transport agent    *
       
   310 +*************************************************/
       
   311 +
       
   312 +/* Copyright (c) University of Cambridge 1995 - 2009 */
       
   313 +/* See the file NOTICE for conditions of use and distribution. */
       
   314 +
       
   315 +/* Header file for the functions that are used to support the use of
       
   316 +maildirsize files for quota handling in maildir directories. */
       
   317 +
       
   318 +extern off_t  maildir_compute_size(uschar *, int *, time_t *, const pcre *,
       
   319 +                const pcre *, BOOL);
       
   320 +extern BOOL   maildir_ensure_directories(uschar *, address_item *, BOOL, int,
       
   321 +                uschar *);
       
   322 +extern int    maildir_ensure_sizefile(uschar *,
       
   323 +                appendfile_transport_options_block *, const pcre *,
   282 +                const pcre *, off_t *, int *, uschar **);
   324 +                const pcre *, off_t *, int *, uschar **);
   283  extern void   maildir_record_length(int, int);
   325 +extern void   maildir_record_length(int, int);
   284  
   326 +
   285  /* End of tf_maildir.h */
   327 +/* End of tf_maildir.h */