diff options
| author | Sam Varshavchik | 2013-08-19 16:39:41 -0400 | 
|---|---|---|
| committer | Sam Varshavchik | 2013-08-25 14:43:51 -0400 | 
| commit | 9c45d9ad13fdf439d44d7443ae75da15ea0223ed (patch) | |
| tree | 7a81a04cb51efb078ee350859a64be2ebc6b8813 /maildrop/deliverdotlock.h | |
| parent | a9520698b770168d1f33d6301463bb70a19655ec (diff) | |
| download | courier-libs-9c45d9ad13fdf439d44d7443ae75da15ea0223ed.tar.bz2 | |
Initial checkin
Imported from subversion report, converted to git. Updated all paths in
scripts and makefiles, reflecting the new directory hierarchy.
Diffstat (limited to 'maildrop/deliverdotlock.h')
| -rw-r--r-- | maildrop/deliverdotlock.h | 36 | 
1 files changed, 36 insertions, 0 deletions
| diff --git a/maildrop/deliverdotlock.h b/maildrop/deliverdotlock.h new file mode 100644 index 0000000..19bf905 --- /dev/null +++ b/maildrop/deliverdotlock.h @@ -0,0 +1,36 @@ +#ifndef	deliverdotlock_h +#define	deliverdotlock_h + + +//////////////////////////////////////////////////////////////////////////// +// +// When delivering to a mailbox, and there's an exception, the mailbox +// must be truncated BEFORE the dot lock is released.  Override the cleanup() +// virtual function to do the truncation first. +// +//////////////////////////////////////////////////////////////////////////// + +#include	"config.h" +#include	"dotlock.h" +#include	<sys/types.h> +#include	<sys/stat.h> + +class DeliverDotLock : public DotLock { + +	void	cleanup(); + +	int	truncate_fd; +	off_t	truncate_size; +public: +	DeliverDotLock(); +	~DeliverDotLock(); + +	void	trap_truncate(int f, off_t size) +		{ +			truncate_size=size; +			truncate_fd=f; +		} +	void	remove_trap() { truncate_fd= -1; } +	void	truncate(); +} ; +#endif | 
