ph10 2004/11/10 10:29:56 GMT
Modified files:
exim-doc/doc-txt ChangeLog NewStuff OptionLists.txt
exim-src ACKNOWLEDGMENTS
exim-src/src daemon.c exim.c globals.c globals.h
Log:
Added -dd for daemon debugging.
Revision Changes Path
1.19 +2 -0 exim/exim-doc/doc-txt/ChangeLog
1.8 +6 -0 exim/exim-doc/doc-txt/NewStuff
1.4 +2 -1 exim/exim-doc/doc-txt/OptionLists.txt
1.3 +2 -1 exim/exim-src/ACKNOWLEDGMENTS
1.2 +21 -2 exim/exim-src/src/daemon.c
1.8 +7 -1 exim/exim-src/src/exim.c
1.6 +1 -0 exim/exim-src/src/globals.c
1.6 +1 -0 exim/exim-src/src/globals.h
Index: ChangeLog
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- ChangeLog 5 Nov 2004 16:53:28 -0000 1.18
+++ ChangeLog 10 Nov 2004 10:29:56 -0000 1.19
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.18 2004/11/05 16:53:28 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.19 2004/11/10 10:29:56 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -67,6 +67,8 @@
18. New variables $sender_verify_failure and $recipient_verify_failure contain
information about exactly what failed.
+
+19. Added -dd to debug only the daemon process.
Exim version 4.43
Index: NewStuff
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/NewStuff,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- NewStuff 5 Nov 2004 16:53:28 -0000 1.7
+++ NewStuff 10 Nov 2004 10:29:56 -0000 1.8
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/NewStuff,v 1.7 2004/11/05 16:53:28 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/NewStuff,v 1.8 2004/11/10 10:29:56 ph10 Exp $
New Features in Exim
--------------------
@@ -60,6 +60,12 @@
The main use of these variables is expected to be to distinguish between
rejections of MAIL and rejections of RCPT.
+
+ 8. The command line option -dd behaves exactly like -d except when used on a
+ command that starts a daemon process. In that case, debugging is turned off
+ for the subprocesses that the daemon creates. Thus, it is useful for
+ monitoring the behaviour of the daemon without creating as much output as
+ full debugging.
Index: OptionLists.txt
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/OptionLists.txt,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- OptionLists.txt 4 Nov 2004 10:42:11 -0000 1.3
+++ OptionLists.txt 10 Nov 2004 10:29:56 -0000 1.4
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/OptionLists.txt,v 1.3 2004/11/04 10:42:11 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/OptionLists.txt,v 1.4 2004/11/10 10:29:56 ph10 Exp $
LISTS OF EXIM OPTIONS
---------------------
@@ -589,7 +589,8 @@
-bvs Test sender address verification
-C + Use alternate configuration file
-D + Define macro for configuration file
--d Turn on debugging output
+-d + Turn on debugging output
+-dd + Ditto, but if a daemon, not for subprocesses
-dropcr Remove CR character in input: became a no-op in 4.21
-E Internal use only
-ex * Synonym for -oex (for several different x)
Index: ACKNOWLEDGMENTS
===================================================================
RCS file: /home/cvs/exim/exim-src/ACKNOWLEDGMENTS,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ACKNOWLEDGMENTS 19 Oct 2004 11:40:52 -0000 1.2
+++ ACKNOWLEDGMENTS 10 Nov 2004 10:29:56 -0000 1.3
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-src/ACKNOWLEDGMENTS,v 1.2 2004/10/19 11:40:52 ph10 Exp $
+$Cambridge: exim/exim-src/ACKNOWLEDGMENTS,v 1.3 2004/11/10 10:29:56 ph10 Exp $
EXIM ACKNOWLEDGEMENTS
@@ -20,7 +20,7 @@
Philip Hazel
Lists created: 20 November 2002
-Last updated: 19 October 2004
+Last updated: 10 November 2004
THE OLD LIST
@@ -119,6 +119,7 @@
A number of useful code criticisms
Timezone patch for exiwhat
Patch for more daemon exiwhat information
+ Patch for -dd
Giuliano Gavazzi Patches for OSX compilation
Dominic Germain Patch for exiqgrep MacOS X bug
Oliver Gorwits $load_average patch
Index: daemon.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/daemon.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- daemon.c 7 Oct 2004 10:39:01 -0000 1.1
+++ daemon.c 10 Nov 2004 10:29:56 -0000 1.2
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/daemon.c,v 1.1 2004/10/07 10:39:01 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/daemon.c,v 1.2 2004/11/10 10:29:56 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -362,6 +362,7 @@
int i;
int queue_only_reason = 0;
int old_pool = store_pool;
+ int save_debug_selector = debug_selector;
BOOL local_queue_only;
#ifdef SA_NOCLDWAIT
struct sigaction act;
@@ -432,15 +433,26 @@
/* Attempt to get an id from the sending machine via the RFC 1413
protocol. We do this in the sub-process in order not to hold up the
main process if there is any delay. Then set up the fullhost information
- in case there is no HELO/EHLO. */
-
+ in case there is no HELO/EHLO.
+
+ If debugging is enabled only for the daemon, we must turn if off while
+ finding the id, but turn it on again afterwards so that information about the
+ incoming connection is output. */
+
+ if (debug_daemon) debug_selector = 0;
verify_get_ident(IDENT_PORT);
host_build_sender_fullhost();
+ debug_selector = save_debug_selector;
DEBUG(D_any)
debug_printf("Process %d is handling incoming connection from %s\n",
(int)getpid(), sender_fullhost);
+ /* Now disable debugging permanently if it's required only for the daemon
+ process. */
+
+ if (debug_daemon) debug_selector = 0;
+
/* If there are too many child processes for immediate delivery,
set the local_queue_only flag, which is initialized from the
configured value and may therefore already be TRUE. Leave logging
@@ -1511,9 +1523,16 @@
if ((pid = fork()) == 0)
{
int sk;
+
DEBUG(D_any) debug_printf("Starting queue-runner: pid %d\n",
(int)getpid());
+ /* Disable debugging if it's required only for the daemon process. We
+ leave the above message, because it ties up with the "child ended"
+ debugging messages. */
+
+ if (debug_daemon) debug_selector = 0;
+
/* Close any open listening sockets in the child */
for (sk = 0; sk < listen_socket_count; sk++) close(listen_sockets[sk]);
Index: exim.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/exim.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- exim.c 4 Nov 2004 12:19:48 -0000 1.7
+++ exim.c 10 Nov 2004 10:29:56 -0000 1.8
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/exim.c,v 1.7 2004/11/04 12:19:48 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/exim.c,v 1.8 2004/11/10 10:29:56 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -1863,7 +1863,8 @@
break;
/* -d: Set debug level (see also -v below) or set the drop_cr option.
- The latter is now a no-opt, retained for compatibility only. */
+ The latter is now a no-op, retained for compatibility only. If -dd is used,
+ debugging subprocesses of the daemon is disabled. */
case 'd':
if (Ustrcmp(argrest, "ropcr") == 0)
@@ -1879,6 +1880,11 @@
unsigned int selector = D_default;
debug_selector = 0;
debug_file = NULL;
+ if (*argrest == 'd')
+ {
+ debug_daemon = TRUE;
+ argrest++;
+ }
if (*argrest != 0)
decode_bits(&selector, NULL, argrest, debug_options,
debug_options_count, US"debug");
Index: globals.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/globals.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- globals.c 5 Nov 2004 16:53:28 -0000 1.5
+++ globals.c 10 Nov 2004 10:29:56 -0000 1.6
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/globals.c,v 1.5 2004/11/05 16:53:28 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/globals.c,v 1.6 2004/11/10 10:29:56 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -363,6 +363,7 @@
BOOL daemon_listen = FALSE;
uschar *daemon_smtp_port = US"smtp";
+BOOL debug_daemon = FALSE;
int debug_fd = -1;
FILE *debug_file = NULL;
bit_table debug_options[] = {
Index: globals.h
===================================================================
RCS file: /home/cvs/exim/exim-src/src/globals.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- globals.h 5 Nov 2004 16:53:28 -0000 1.5
+++ globals.h 10 Nov 2004 10:29:56 -0000 1.6
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/globals.h,v 1.5 2004/11/05 16:53:28 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/globals.h,v 1.6 2004/11/10 10:29:56 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -194,6 +194,7 @@
extern BOOL daemon_listen; /* True if listening required */
extern uschar *daemon_smtp_port; /* Can be a list of ports */
+extern BOOL debug_daemon; /* Debug the daemon process only */
extern int debug_fd; /* The fd for debug_file */
extern FILE *debug_file; /* Where to write debugging info */
extern bit_table debug_options[]; /* Table of debug options */