ph10 2005/08/08 11:48:27 BST
Modified files:
exim-doc/doc-txt ChangeLog NewStuff OptionLists.txt
exim-src/OS Makefile-HP-UX
exim-src/src globals.c globals.h readconf.c
exim-src/src/lookups sqlite.c
exim-test-orig/AutoTest/confs 906
Log:
Add sqlite_lock_timeout.
Revision Changes Path
1.202 +2 -0 exim/exim-doc/doc-txt/ChangeLog
1.62 +8 -0 exim/exim-doc/doc-txt/NewStuff
1.10 +1 -0 exim/exim-doc/doc-txt/OptionLists.txt
1.4 +3 -0 exim/exim-src/OS/Makefile-HP-UX
1.34 +4 -0 exim/exim-src/src/globals.c
1.25 +4 -0 exim/exim-src/src/globals.h
1.2 +1 -0 exim/exim-src/src/lookups/sqlite.c
1.12 +3 -0 exim/exim-src/src/readconf.c
1.2 +1 -0 exim/exim-test-orig/AutoTest/confs/906
Index: ChangeLog
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
retrieving revision 1.201
retrieving revision 1.202
diff -u -r1.201 -r1.202
--- ChangeLog 8 Aug 2005 10:32:58 -0000 1.201
+++ ChangeLog 8 Aug 2005 10:48:26 -0000 1.202
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.201 2005/08/08 10:32:58 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.202 2005/08/08 10:48:26 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -70,6 +70,8 @@
PH/18 Reversed 4.52/PH/17 because the HP-UX user found it wasn't the cause
of the problem. Specifically, suggested +O2 rather than +O1 for the
HP-UX compiler.
+
+PH/19 Added sqlite_lock_timeout option (David Woodhouse's patch).
Exim version 4.52
Index: NewStuff
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/NewStuff,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -r1.61 -r1.62
--- NewStuff 2 Aug 2005 15:19:20 -0000 1.61
+++ NewStuff 8 Aug 2005 10:48:26 -0000 1.62
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/NewStuff,v 1.61 2005/08/02 15:19:20 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/NewStuff,v 1.62 2005/08/08 10:48:26 ph10 Exp $
New Features in Exim
--------------------
@@ -41,6 +41,14 @@
The only character affected by the ${quote_sqlite: operator is a single
quote, which it doubles.
+
+ The SQLite library handles multiple simultaneous accesses to the database
+ internally. Multiple readers are permitted, but only one process can
+ update at once. Attempts to access the database while it is being updated
+ are rejected after a timeout period, during which the SQLite library
+ waits for the lock to be released. In Exim, the default timeout is set
+ to 5 seconds, but it can be changed by means of the sqlite_lock_timeout
+ option.
Note that you must set LOOKUP_SQLITE=yes in Local/Makefile in order to
obtain SQLite support, and you will also need to add -lsqlite3 to the
Index: OptionLists.txt
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/OptionLists.txt,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- OptionLists.txt 21 Jun 2005 14:14:55 -0000 1.9
+++ OptionLists.txt 8 Aug 2005 10:48:26 -0000 1.10
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/OptionLists.txt,v 1.9 2005/06/21 14:14:55 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/OptionLists.txt,v 1.10 2005/08/08 10:48:26 ph10 Exp $
LISTS OF EXIM OPTIONS
---------------------
@@ -474,6 +474,7 @@
spamd_address string + main 4.50 with content scan
split_spool_directory boolean false main 1.70
spool_directory string ++ main
+sqlite_lock_timeout time 5s main 4.53
srv_fail_domains domain list unset dnslookup 4.43
strip_excess_angle_brackets boolean false main
strip_trailing_dot boolean false main
Index: Makefile-HP-UX
===================================================================
RCS file: /home/cvs/exim/exim-src/OS/Makefile-HP-UX,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- Makefile-HP-UX 8 Aug 2005 10:32:58 -0000 1.3
+++ Makefile-HP-UX 8 Aug 2005 10:48:27 -0000 1.4
@@ -1,10 +1,13 @@
-# $Cambridge: exim/exim-src/OS/Makefile-HP-UX,v 1.3 2005/08/08 10:32:58 ph10 Exp $
+# $Cambridge: exim/exim-src/OS/Makefile-HP-UX,v 1.4 2005/08/08 10:48:27 ph10 Exp $
# Exim: OS-specific make file for HP-UX later than 9
# HP ANSI C compiler
#CC=cc
#CFLAGS=+O2 +Onolimit -z -D_XOPEN_SOURCE_EXTENDED
+# Users of the A.06.00 compiler might need to use +O1 rather than +O2 as
+# there have been some problems reported with this compiler with +O2 set.
+
# gcc
CFLAGS=-O -Wl,-z -D_XOPEN_SOURCE_EXTENDED
Index: globals.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/globals.c,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- globals.c 2 Aug 2005 15:19:20 -0000 1.33
+++ globals.c 8 Aug 2005 10:48:27 -0000 1.34
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/globals.c,v 1.33 2005/08/02 15:19:20 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/globals.c,v 1.34 2005/08/08 10:48:27 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -85,6 +85,10 @@
#ifdef LOOKUP_PGSQL
uschar *pgsql_servers = NULL;
+#endif
+
+#ifdef LOOKUP_SQLITE
+int sqlite_lock_timeout = 5;
#endif
#ifdef SUPPORT_MOVE_FROZEN_MESSAGES
Index: globals.h
===================================================================
RCS file: /home/cvs/exim/exim-src/src/globals.h,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- globals.h 2 Aug 2005 15:19:20 -0000 1.24
+++ globals.h 8 Aug 2005 10:48:27 -0000 1.25
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/globals.h,v 1.24 2005/08/02 15:19:20 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/globals.h,v 1.25 2005/08/08 10:48:27 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -49,6 +49,10 @@
#ifdef LOOKUP_PGSQL
extern uschar *pgsql_servers; /* List of servers and connect info */
+#endif
+
+#ifdef LOOKUP_SQLITE
+extern int sqlite_lock_timeout; /* Internal lock waiting timeout */
#endif
#ifdef SUPPORT_MOVE_FROZEN_MESSAGES
Index: readconf.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/readconf.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- readconf.c 27 Jun 2005 14:29:43 -0000 1.11
+++ readconf.c 8 Aug 2005 10:48:27 -0000 1.12
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/readconf.c,v 1.11 2005/06/27 14:29:43 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/readconf.c,v 1.12 2005/08/08 10:48:27 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -339,6 +339,9 @@
#endif
{ "split_spool_directory", opt_bool, &split_spool_directory },
{ "spool_directory", opt_stringptr, &spool_directory },
+#ifdef LOOKUP_SQLITE
+ { "sqlite_lock_timeout", opt_int, &sqlite_lock_timeout },
+#endif
#ifdef EXPERIMENTAL_SRS
{ "srs_config", opt_stringptr, &srs_config },
{ "srs_hashlength", opt_int, &srs_hashlength },
Index: sqlite.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/lookups/sqlite.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- sqlite.c 1 Aug 2005 13:20:28 -0000 1.1
+++ sqlite.c 8 Aug 2005 10:48:27 -0000 1.2
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/lookups/sqlite.c,v 1.1 2005/08/01 13:20:28 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/lookups/sqlite.c,v 1.2 2005/08/08 10:48:27 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -36,6 +36,7 @@
debug_printf("Error opening database: %s\n", *errmsg);
}
+sqlite3_busy_timeout(db, 1000 * sqlite_lock_timeout);
return db;
}
Index: 906
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/confs/906,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 906 1 Aug 2005 13:20:29 -0000 1.1
+++ 906 8 Aug 2005 10:48:27 -0000 1.2
@@ -15,6 +15,7 @@
id='$sender_host_address'
acl_smtp_rcpt = check_recipient
+sqlite_lock_timeout = 2
# ----- ACL -----