git://git.exim.org
/
users
/
heiko
/
exim.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
8ca559c
)
Move the fast-ramp two phase queue run support from Experimental to the mainline
author
Jeremy Harris
<jgh146exb@wizmail.org>
Sat, 9 May 2020 17:00:08 +0000
(18:00 +0100)
committer
Jeremy Harris
<jgh146exb@wizmail.org>
Sat, 9 May 2020 17:00:08 +0000
(18:00 +0100)
12 files changed:
doc/doc-txt/ChangeLog
patch
|
blob
|
history
doc/doc-txt/NewStuff
patch
|
blob
|
history
src/src/EDITME
patch
|
blob
|
history
src/src/config.h.defaults
patch
|
blob
|
history
src/src/daemon.c
patch
|
blob
|
history
src/src/exim.c
patch
|
blob
|
history
src/src/functions.h
patch
|
blob
|
history
src/src/globals.c
patch
|
blob
|
history
src/src/globals.h
patch
|
blob
|
history
src/src/queue.c
patch
|
blob
|
history
src/src/readconf.c
patch
|
blob
|
history
src/src/transport.c
patch
|
blob
|
history
diff --git
a/doc/doc-txt/ChangeLog
b/doc/doc-txt/ChangeLog
index 3cd92b8168bfe78680c71ad3408e0832038bc1d4..62777266f6f22717985a64b2c9c8a257e1b9a880 100644
(file)
--- a/
doc/doc-txt/ChangeLog
+++ b/
doc/doc-txt/ChangeLog
@@
-3,6
+3,12
@@
affect Exim's operation, with an unchanged configuration file. For new
options, and new features, see the NewStuff file next to this ChangeLog.
options, and new features, see the NewStuff file next to this ChangeLog.
+Since Exim version 4.94
+----------------------
+
+(none yet)
+
+
Exim version 4.94
-----------------
Exim version 4.94
-----------------
diff --git
a/doc/doc-txt/NewStuff
b/doc/doc-txt/NewStuff
index c29525d5002b97cddd714ab9630b991e5536eba2..7f8f628f9b26627ac49bc558c582d923d8b67496 100644
(file)
--- a/
doc/doc-txt/NewStuff
+++ b/
doc/doc-txt/NewStuff
@@
-6,6
+6,13
@@
Before a formal release, there may be quite a lot of detail so that people can
test from the snapshots or the Git before the documentation is updated. Once
the documentation is updated, this file is reduced to a short list.
test from the snapshots or the Git before the documentation is updated. Once
the documentation is updated, this file is reduced to a short list.
+Version 4.95
+------------
+
+ 1. The fast-ramp two phase queue run support, previously experimental, is
+ now supported by default.
+
+
Version 4.94
------------
Version 4.94
------------
diff --git
a/src/src/EDITME
b/src/src/EDITME
index 8d8552346a98233a98eaa8c856b7abb64757e939..c6f30b58c8ab877872b271b2cfc1c8b247f4df3c 100644
(file)
--- a/
src/src/EDITME
+++ b/
src/src/EDITME
@@
-561,7
+561,6
@@
DISABLE_MAL_MKS=yes
# DISABLE_DNSSEC=yes
# To disable support for Events set DISABLE_EVENT to "yes"
# DISABLE_DNSSEC=yes
# To disable support for Events set DISABLE_EVENT to "yes"
-
# DISABLE_EVENT=yes
# DISABLE_EVENT=yes
@@
-570,6
+569,10
@@
DISABLE_MAL_MKS=yes
# SUPPORT_PIPE_CONNECT=yes
# SUPPORT_PIPE_CONNECT=yes
+# Uncomment the following to remove the fast-ramp two-phase-queue-run support
+# DISABLE_QUEUE_RAMP=yes
+
+
#------------------------------------------------------------------------------
# Compiling Exim with experimental features. These are documented in
# experimental-spec.txt. "Experimental" means that the way these features are
#------------------------------------------------------------------------------
# Compiling Exim with experimental features. These are documented in
# experimental-spec.txt. "Experimental" means that the way these features are
@@
-632,9
+635,6
@@
DISABLE_MAL_MKS=yes
# Uncomment the following line to include support for TLS Resumption
# EXPERIMENTAL_TLS_RESUME=yes
# Uncomment the following line to include support for TLS Resumption
# EXPERIMENTAL_TLS_RESUME=yes
-# Uncomment the following to include the fast-ramp two-phase-queue-run support
-# EXPERIMENTAL_QUEUE_RAMP=yes
-
###############################################################################
# THESE ARE THINGS YOU MIGHT WANT TO SPECIFY #
###############################################################################
###############################################################################
# THESE ARE THINGS YOU MIGHT WANT TO SPECIFY #
###############################################################################
diff --git
a/src/src/config.h.defaults
b/src/src/config.h.defaults
index e17f015f96775627175eda7e49427b1284c80d24..bc3beb931637c6c54207efa8d5d9baeff6e7bb43 100644
(file)
--- a/
src/src/config.h.defaults
+++ b/
src/src/config.h.defaults
@@
-52,6
+52,7
@@
Do not put spaces between # and the 'define'.
#define DISABLE_OCSP
#define DISABLE_PIPE_CONNECT
#define DISABLE_PRDR
#define DISABLE_OCSP
#define DISABLE_PIPE_CONNECT
#define DISABLE_PRDR
+#define DISABLE_QUEUE_RAMP
#define DISABLE_TLS
#define DISABLE_D_OPTION
#define DISABLE_TLS
#define DISABLE_D_OPTION
@@
-202,7
+203,6
@@
Do not put spaces between # and the 'define'.
#define EXPERIMENTAL_DCC
#define EXPERIMENTAL_DSN_INFO
#define EXPERIMENTAL_LMDB
#define EXPERIMENTAL_DCC
#define EXPERIMENTAL_DSN_INFO
#define EXPERIMENTAL_LMDB
-#define EXPERIMENTAL_QUEUE_RAMP
#define EXPERIMENTAL_QUEUEFILE
#define EXPERIMENTAL_SRS
#define EXPERIMENTAL_SRS_NATIVE
#define EXPERIMENTAL_QUEUEFILE
#define EXPERIMENTAL_SRS
#define EXPERIMENTAL_SRS_NATIVE
diff --git
a/src/src/daemon.c
b/src/src/daemon.c
index 2bed143a188ac1ed57e263904c142309545bd813..1816537ecfc055d17cd639961ee41b3fa630cd92 100644
(file)
--- a/
src/src/daemon.c
+++ b/
src/src/daemon.c
@@
-1138,14
+1138,14
@@
for (struct cmsghdr * cp = CMSG_FIRSTHDR(&msg);
buf[sz] = 0;
switch (buf[0])
{
buf[sz] = 0;
switch (buf[0])
{
-#if
def EXPERIMENTAL
_QUEUE_RAMP
+#if
ndef DISABLE
_QUEUE_RAMP
case NOTIFY_MSG_QRUN:
/* this should be a message_id */
DEBUG(D_queue_run)
debug_printf("%s: qrunner trigger: %s\n", __FUNCTION__, buf+1);
memcpy(queuerun_msgid, buf+1, MESSAGE_ID_LENGTH+1);
return TRUE;
case NOTIFY_MSG_QRUN:
/* this should be a message_id */
DEBUG(D_queue_run)
debug_printf("%s: qrunner trigger: %s\n", __FUNCTION__, buf+1);
memcpy(queuerun_msgid, buf+1, MESSAGE_ID_LENGTH+1);
return TRUE;
-#endif
/*EXPERIMENTAL_QUEUE_RAMP*/
+#endif
case NOTIFY_QUEUE_SIZE_REQ:
{
case NOTIFY_QUEUE_SIZE_REQ:
{
@@
-2120,7
+2120,7
@@
for (;;)
else
{
DEBUG(D_any) debug_printf("%s received\n",
else
{
DEBUG(D_any) debug_printf("%s received\n",
-#if
def EXPERIMENTAL
_QUEUE_RAMP
+#if
ndef DISABLE
_QUEUE_RAMP
*queuerun_msgid ? "qrun notification" :
#endif
"SIGALRM");
*queuerun_msgid ? "qrun notification" :
#endif
"SIGALRM");
@@
-2165,7
+2165,7
@@
for (;;)
*p++ = '-';
*p++ = 'q';
if ( f.queue_2stage
*p++ = '-';
*p++ = 'q';
if ( f.queue_2stage
-#if
def EXPERIMENTAL
_QUEUE_RAMP
+#if
ndef DISABLE
_QUEUE_RAMP
&& !*queuerun_msgid
#endif
) *p++ = 'q';
&& !*queuerun_msgid
#endif
) *p++ = 'q';
@@
-2177,7
+2177,7
@@
for (;;)
extra[0] = *queue_name
? string_sprintf("%sG%s", opt, queue_name) : opt;
extra[0] = *queue_name
? string_sprintf("%sG%s", opt, queue_name) : opt;
-#if
def EXPERIMENTAL
_QUEUE_RAMP
+#if
ndef DISABLE
_QUEUE_RAMP
if (*queuerun_msgid)
{
log_write(0, LOG_MAIN, "notify triggered queue run");
if (*queuerun_msgid)
{
log_write(0, LOG_MAIN, "notify triggered queue run");
@@
-2212,7
+2212,7
@@
for (;;)
/* No need to re-exec; SIGALRM remains set to the default handler */
/* No need to re-exec; SIGALRM remains set to the default handler */
-#if
def EXPERIMENTAL
_QUEUE_RAMP
+#if
ndef DISABLE
_QUEUE_RAMP
if (*queuerun_msgid)
{
log_write(0, LOG_MAIN, "notify triggered queue run");
if (*queuerun_msgid)
{
log_write(0, LOG_MAIN, "notify triggered queue run");
@@
-2248,7
+2248,7
@@
for (;;)
/* Reset the alarm clock */
sigalrm_seen = FALSE;
/* Reset the alarm clock */
sigalrm_seen = FALSE;
-#if
def EXPERIMENTAL
_QUEUE_RAMP
+#if
ndef DISABLE
_QUEUE_RAMP
if (*queuerun_msgid)
*queuerun_msgid = 0;
else
if (*queuerun_msgid)
*queuerun_msgid = 0;
else
diff --git
a/src/src/exim.c
b/src/src/exim.c
index 920e9e226d422df06924e466b3104ab0b75e00f8..d8ad1989929a4f5e8af22b0ebdb79d905fe112cd 100644
(file)
--- a/
src/src/exim.c
+++ b/
src/src/exim.c
@@
-946,6
+946,9
@@
g = string_cat(NULL, US"Support for:");
#ifndef DISABLE_DKIM
g = string_cat(g, US" DKIM");
#endif
#ifndef DISABLE_DKIM
g = string_cat(g, US" DKIM");
#endif
+#ifdef SUPPORT_DMARC
+ g = string_cat(g, US" DMARC");
+#endif
#ifndef DISABLE_DNSSEC
g = string_cat(g, US" DNSSEC");
#endif
#ifndef DISABLE_DNSSEC
g = string_cat(g, US" DNSSEC");
#endif
@@
-967,15
+970,15
@@
g = string_cat(NULL, US"Support for:");
#ifdef SUPPORT_PROXY
g = string_cat(g, US" PROXY");
#endif
#ifdef SUPPORT_PROXY
g = string_cat(g, US" PROXY");
#endif
+#ifndef DISABLE_QUEUE_RAMP
+ g = string_cat(g, US" Experimental_Queue_Ramp");
+#endif
#ifdef SUPPORT_SOCKS
g = string_cat(g, US" SOCKS");
#endif
#ifdef SUPPORT_SPF
g = string_cat(g, US" SPF");
#endif
#ifdef SUPPORT_SOCKS
g = string_cat(g, US" SOCKS");
#endif
#ifdef SUPPORT_SPF
g = string_cat(g, US" SPF");
#endif
-#ifdef SUPPORT_DMARC
- g = string_cat(g, US" DMARC");
-#endif
#ifdef TCP_FASTOPEN
tcp_init();
if (f.tcp_fastopen_ok) g = string_cat(g, US" TCP_Fast_Open");
#ifdef TCP_FASTOPEN
tcp_init();
if (f.tcp_fastopen_ok) g = string_cat(g, US" TCP_Fast_Open");
@@
-995,9
+998,6
@@
g = string_cat(NULL, US"Support for:");
#ifdef EXPERIMENTAL_LMDB
g = string_cat(g, US" Experimental_LMDB");
#endif
#ifdef EXPERIMENTAL_LMDB
g = string_cat(g, US" Experimental_LMDB");
#endif
-#ifdef EXPERIMENTAL_QUEUE_RAMP
- g = string_cat(g, US" Experimental_Queue_Ramp");
-#endif
#ifdef EXPERIMENTAL_QUEUEFILE
g = string_cat(g, US" Experimental_QUEUEFILE");
#endif
#ifdef EXPERIMENTAL_QUEUEFILE
g = string_cat(g, US" Experimental_QUEUEFILE");
#endif
diff --git
a/src/src/functions.h
b/src/src/functions.h
index 0028deb0d6d2622aa0c8e88d463c6984e74df84d..2a4597202fbabfbe5a5e42e1c3595836390351a0 100644
(file)
--- a/
src/src/functions.h
+++ b/
src/src/functions.h
@@
-379,7
+379,7
@@
extern void queue_check_only(void);
extern unsigned queue_count(void);
extern unsigned queue_count_cached(void);
extern void queue_list(int, uschar **, int);
extern unsigned queue_count(void);
extern unsigned queue_count_cached(void);
extern void queue_list(int, uschar **, int);
-#if
def EXPERIMENTAL
_QUEUE_RAMP
+#if
ndef DISABLE
_QUEUE_RAMP
extern void queue_notify_daemon(const uschar * hostname);
#endif
extern void queue_run(uschar *, uschar *, BOOL);
extern void queue_notify_daemon(const uschar * hostname);
#endif
extern void queue_run(uschar *, uschar *, BOOL);
diff --git
a/src/src/globals.c
b/src/src/globals.c
index ba772c631cf2759106285248dc5aecdc874cd481..e9529b493ec9f3701fddb7169350782591d6914b 100644
(file)
--- a/
src/src/globals.c
+++ b/
src/src/globals.c
@@
-382,7
+382,7
@@
BOOL prod_requires_admin = TRUE;
BOOL proxy_session = FALSE;
#endif
BOOL proxy_session = FALSE;
#endif
-#if
def EXPERIMENTAL
_QUEUE_RAMP
+#if
ndef DISABLE
_QUEUE_RAMP
BOOL queue_fast_ramp = FALSE;
#endif
BOOL queue_list_requires_admin = TRUE;
BOOL queue_fast_ramp = FALSE;
#endif
BOOL queue_list_requires_admin = TRUE;
diff --git
a/src/src/globals.h
b/src/src/globals.h
index 3a8e824cf897e98dfb5a02880a37e9b848eb79db..95cc25f6a2f2e641ca5f0a43d37c555ea985d20d 100644
(file)
--- a/
src/src/globals.h
+++ b/
src/src/globals.h
@@
-792,7
+792,7
@@
extern uschar *prvscheck_result; /* Set during prvscheck expansion item */
extern const uschar *qualify_domain_recipient; /* Domain to qualify recipients with */
extern uschar *qualify_domain_sender; /* Domain to qualify senders with */
extern uschar *queue_domains; /* Queue these domains */
extern const uschar *qualify_domain_recipient; /* Domain to qualify recipients with */
extern uschar *qualify_domain_sender; /* Domain to qualify senders with */
extern uschar *queue_domains; /* Queue these domains */
-#if
def EXPERIMENTAL
_QUEUE_RAMP
+#if
ndef DISABLE
_QUEUE_RAMP
extern BOOL queue_fast_ramp; /* 2-phase queue-run overlap */
#endif
extern BOOL queue_list_requires_admin; /* TRUE if -bp requires admin */
extern BOOL queue_fast_ramp; /* 2-phase queue-run overlap */
#endif
extern BOOL queue_list_requires_admin; /* TRUE if -bp requires admin */
diff --git
a/src/src/queue.c
b/src/src/queue.c
index 37d6124822b0b2c8725080b48a03a35d08d20ce7..6748afd5d8c99e5eaa237ccf29f530faaf165edc 100644
(file)
--- a/
src/src/queue.c
+++ b/
src/src/queue.c
@@
-1531,7
+1531,7
@@
if (s)
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
-#if
def EXPERIMENTAL
_QUEUE_RAMP
+#if
ndef DISABLE
_QUEUE_RAMP
void
queue_notify_daemon(const uschar * msgid)
{
void
queue_notify_daemon(const uschar * msgid)
{
diff --git
a/src/src/readconf.c
b/src/src/readconf.c
index 40506010c0bf1eb10948fd1f70272f6b3f3da24d..68079e6f82bc4c525246014e823b757c99bbdc1d 100644
(file)
--- a/
src/src/readconf.c
+++ b/
src/src/readconf.c
@@
-262,7
+262,7
@@
static optionlist optionlist_config[] = {
{ "qualify_domain", opt_stringptr, {&qualify_domain_sender} },
{ "qualify_recipient", opt_stringptr, {&qualify_domain_recipient} },
{ "queue_domains", opt_stringptr, {&queue_domains} },
{ "qualify_domain", opt_stringptr, {&qualify_domain_sender} },
{ "qualify_recipient", opt_stringptr, {&qualify_domain_recipient} },
{ "queue_domains", opt_stringptr, {&queue_domains} },
-#if
def EXPERIMENTAL
_QUEUE_RAMP
+#if
ndef DISABLE
_QUEUE_RAMP
{ "queue_fast_ramp", opt_bool, {&queue_fast_ramp} },
#endif
{ "queue_list_requires_admin",opt_bool, {&queue_list_requires_admin} },
{ "queue_fast_ramp", opt_bool, {&queue_fast_ramp} },
#endif
{ "queue_list_requires_admin",opt_bool, {&queue_list_requires_admin} },
diff --git
a/src/src/transport.c
b/src/src/transport.c
index 2d8426f297acfadfe03dfe432e826ddc8261c77e..f9ff521f78f5208429650d12f337e0f6345bb43c 100644
(file)
--- a/
src/src/transport.c
+++ b/
src/src/transport.c
@@
-1571,7
+1571,7
@@
for (host_item * host = hostlist; host; host = host->next)
{
sprintf(CS buffer, "%.200s:%d", host->name, host_record->sequence);
dbfn_write(dbm_file, buffer, host_record, sizeof(dbdata_wait) + host_length);
{
sprintf(CS buffer, "%.200s:%d", host->name, host_record->sequence);
dbfn_write(dbm_file, buffer, host_record, sizeof(dbdata_wait) + host_length);
-#if
def EXPERIMENTAL
_QUEUE_RAMP
+#if
ndef DISABLE
_QUEUE_RAMP
if (f.queue_2stage && queue_fast_ramp && !queue_run_in_order)
queue_notify_daemon(message_id);
#endif
if (f.queue_2stage && queue_fast_ramp && !queue_run_in_order)
queue_notify_daemon(message_id);
#endif