- 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)
{
int maxlog;
- if( debug_count++ < 100 )
+ if( debug_count < 100 )
return( False );
maxlog = lp_max_log_size() * 1024;
va_list ap;
int old_errno = errno;
+ debug_count++;
+
if( stdout_logging )
{
va_start( ap, format_str );
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();
+ }
}
}