ph10 2005/01/04 10:37:55 GMT
Modified files:
exim-doc/doc-txt ChangeLog
exim-src/src daemon.c
Log:
Need to initialize getloadavg() as root in the daemon when
deliver_drop_privilege is set, for the benefit of the queue runner.
Revision Changes Path
1.61 +6 -0 exim/exim-doc/doc-txt/ChangeLog
1.5 +3 -1 exim/exim-src/src/daemon.c
Index: ChangeLog
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -r1.60 -r1.61
--- ChangeLog 4 Jan 2005 10:25:58 -0000 1.60
+++ ChangeLog 4 Jan 2005 10:37:55 -0000 1.61
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.60 2005/01/04 10:25:58 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.61 2005/01/04 10:37:55 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -274,6 +274,12 @@
62. Configuration update for GNU/Hurd and variations. Updated Makefile-GNU and
os.h-GNU, and added configuration files for GNUkFreeBSD and GNUkNetBSD.
+
+63. The daemon start-up calls getloadavg() while still root for those OS that
+ need the first call to be done as root, but it missed one case: when
+ deliver_queue_load_max is set with deliver_drop_privilege. This is
+ necessary for the benefit of the queue runner, because there is no re-exec
+ when deliver_drop_privilege is set.
Exim version 4.43
Index: daemon.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/daemon.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- daemon.c 4 Jan 2005 10:00:42 -0000 1.4
+++ daemon.c 4 Jan 2005 10:37:55 -0000 1.5
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/daemon.c,v 1.4 2005/01/04 10:00:42 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/daemon.c,v 1.5 2005/01/04 10:37:55 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -898,7 +898,9 @@
order to perform an "open" on the kernel memory file). */
#ifdef LOAD_AVG_NEEDS_ROOT
- if (queue_only_load >= 0 || smtp_load_reserve >= 0) (void)os_getloadavg();
+ if (queue_only_load >= 0 || smtp_load_reserve >= 0 ||
+ (deliver_queue_load_max >= 0 && deliver_drop_privilege))
+ (void)os_getloadavg();
#endif
/* If -oX was used, disable the writing of a pid file unless -oP was