summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
authorTim Potter <tpot@samba.org>2003-01-23 03:02:08 +0000
committerTim Potter <tpot@samba.org>2003-01-23 03:02:08 +0000
commit644d31ae25c696e88148632362b8c55646008efc (patch)
tree6db9962f0a56232eb1c42a9e379d3e1794d563b0 /source3
parent1c4eacafbafd11afa1992cd1f18a421d7737139c (diff)
downloadsamba-644d31ae25c696e88148632362b8c55646008efc.tar.gz
samba-644d31ae25c696e88148632362b8c55646008efc.tar.bz2
samba-644d31ae25c696e88148632362b8c55646008efc.zip
Merge of max log file fixes from appliance:
- smbd/process.c: check log file sizes more often than in timeout_processing() - lib/debug.c: increment debug_count inside Debug1() instead of when log file sizes are checked. (This used to be commit 303710c2065850beebef678e657633497e4d8452)
Diffstat (limited to 'source3')
-rw-r--r--source3/lib/debug.c4
-rw-r--r--source3/smbd/process.c12
2 files changed, 15 insertions, 1 deletions
diff --git a/source3/lib/debug.c b/source3/lib/debug.c
index 2efdd3c2a3..83a470872a 100644
--- a/source3/lib/debug.c
+++ b/source3/lib/debug.c
@@ -625,7 +625,7 @@ BOOL need_to_check_log_size( void )
{
int maxlog;
- if( debug_count++ < 100 )
+ if( debug_count < 100 )
return( False );
maxlog = lp_max_log_size() * 1024;
@@ -710,6 +710,8 @@ void check_log_size( void )
va_list ap;
int old_errno = errno;
+ debug_count++;
+
if( stdout_logging )
{
va_start( ap, format_str );
diff --git a/source3/smbd/process.c b/source3/smbd/process.c
index ff84dc8e1a..2b92b9910f 100644
--- a/source3/smbd/process.c
+++ b/source3/smbd/process.c
@@ -1314,5 +1314,17 @@ void smbd_process(void)
last_timeout_processing_time = new_check_time; /* Reset time. */
}
}
+
+ /* The timeout_processing function isn't run nearly
+ often enough to implement 'max log size' without
+ overrunning the size of the file by many megabytes.
+ This is especially true if we are running at debug
+ level 10. Checking every 50 SMBs is a nice
+ tradeoff of performance vs log file size overrun. */
+
+ if ((num_smbs % 50) == 0 && need_to_check_log_size()) {
+ change_to_root_user();
+ check_log_size();
+ }
}
}