diff -up cyrus-imapd-2.4.12/imap/global.c.debugopt cyrus-imapd-2.4.12/imap/global.c
--- cyrus-imapd-2.4.12/imap/global.c.debugopt 2011-10-04 21:53:03.000000000 +0200
+++ cyrus-imapd-2.4.12/imap/global.c 2011-11-22 14:24:28.272416643 +0100
@@ -157,6 +157,10 @@ int cyrus_init(const char *alt_config, c
/* don't free the openlog() string! */
}
+ /* allow debug logging */
+ if (!config_debug)
+ setlogmask(~LOG_MASK(LOG_DEBUG));
+
/* Look up default partition */
config_defpartition = config_getstring(IMAPOPT_DEFAULTPARTITION);
for (p = (char *)config_defpartition; p && *p; p++) {
diff -up cyrus-imapd-2.4.12/imap/tls.c.debugopt cyrus-imapd-2.4.12/imap/tls.c
--- cyrus-imapd-2.4.12/imap/tls.c.debugopt 2011-10-04 21:53:03.000000000 +0200
+++ cyrus-imapd-2.4.12/imap/tls.c 2011-11-22 14:24:28.272416643 +0100
@@ -255,9 +255,9 @@ static DH *load_dh_param(const char *key
if (ret == NULL) {
ret = get_dh1024();
- syslog(LOG_NOTICE, "imapd:Loading hard-coded DH parameters");
+ syslog(LOG_DEBUG, "imapd:Loading hard-coded DH parameters");
} else {
- syslog(LOG_NOTICE, "imapd:Loading DH parameters from file");
+ syslog(LOG_DEBUG, "imapd:Loading DH parameters from file");
}
if (bio != NULL) BIO_free(bio);
diff -up cyrus-imapd-2.4.12/lib/imapoptions.debugopt cyrus-imapd-2.4.12/lib/imapoptions
--- cyrus-imapd-2.4.12/lib/imapoptions.debugopt 2011-11-22 14:24:28.265416615 +0100
+++ cyrus-imapd-2.4.12/lib/imapoptions 2011-11-22 14:24:28.273416647 +0100
@@ -388,6 +388,9 @@ Blank lines and lines beginning with ``#
hashing done on configuration directories. This is recommended if
one partition has a very bushy mailbox tree. */
+{ "debug", 0, SWITCH }
+/* If enabled, allow syslog() to pass LOG_DEBUG messages. */
+
# Commented out - there's no such thing as "hostname_mechs", but we need
# this for the man page
# { "hostname_mechs", NULL, STRING }
diff -up cyrus-imapd-2.4.12/lib/libconfig.c.debugopt cyrus-imapd-2.4.12/lib/libconfig.c
--- cyrus-imapd-2.4.12/lib/libconfig.c.debugopt 2011-10-04 21:53:03.000000000 +0200
+++ cyrus-imapd-2.4.12/lib/libconfig.c 2011-11-22 14:24:28.274416650 +0100
@@ -84,6 +84,7 @@ int config_auditlog;
unsigned config_maxword;
unsigned config_maxquoted;
int config_qosmarking;
+int config_debug;
/* declared in each binary that uses libconfig */
extern const int config_need_data;
@@ -350,6 +351,9 @@ void config_read(const char *alt_config)
ival = config_getenum(IMAPOPT_QOSMARKING);
config_qosmarking = qos[ival];
+
+ /* allow debug logging */
+ config_debug = config_getswitch(IMAPOPT_DEBUG);
}
#define GROWSIZE 4096
diff -up cyrus-imapd-2.4.12/lib/libconfig.h.debugopt cyrus-imapd-2.4.12/lib/libconfig.h
--- cyrus-imapd-2.4.12/lib/libconfig.h.debugopt 2011-10-04 21:53:03.000000000 +0200
+++ cyrus-imapd-2.4.12/lib/libconfig.h 2011-11-22 14:24:28.274416650 +0100
@@ -82,6 +82,7 @@ extern int config_auditlog;
extern unsigned config_maxquoted;
extern unsigned config_maxword;
extern int config_qosmarking;
+extern int config_debug;
/* config requirement flags */
#define CONFIG_NEED_PARTITION_DATA (1<<0)
diff -up cyrus-imapd-2.4.12/master/master.c.debugopt cyrus-imapd-2.4.12/master/master.c
--- cyrus-imapd-2.4.12/master/master.c.debugopt 2011-10-04 21:53:03.000000000 +0200
+++ cyrus-imapd-2.4.12/master/master.c 2011-11-22 14:30:47.243975974 +0100
@@ -1984,7 +1984,7 @@ int main(int argc, char **argv)
if(pidlock_fd != -1) close(pidlock_fd);
}
- syslog(LOG_NOTICE, "process started");
+ syslog(LOG_DEBUG, "process started");
#if defined(HAVE_UCDSNMP) || defined(HAVE_NETSNMP)
/* initialize SNMP agent */
@@ -2041,7 +2041,7 @@ int main(int argc, char **argv)
init_janitor();
/* ok, we're going to start spawning like mad now */
- syslog(LOG_NOTICE, "ready for work");
+ syslog(LOG_DEBUG, "ready for work");
now = time(NULL);
for (;;) {
diff -up cyrus-imapd-2.4.12/master/masterconf.c.debugopt cyrus-imapd-2.4.12/master/masterconf.c
--- cyrus-imapd-2.4.12/master/masterconf.c.debugopt 2011-10-04 21:53:03.000000000 +0200
+++ cyrus-imapd-2.4.12/master/masterconf.c 2011-11-22 14:24:28.276416658 +0100
@@ -99,6 +99,10 @@ int masterconf_init(const char *ident, c
/* don't free the openlog() string! */
}
+ /* drop debug messages locally */
+ if (!config_debug)
+ setlogmask(~LOG_MASK(LOG_DEBUG));
+
return 0;
}