mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
Fix bug #8293 - SMB2 doesn't rotate the log files often enough.
Move the num_requests field out of the smb1 struct into the generic struct smbd_server_connection struct. Use it to count SMB2 requests as well as SMB1 and ensure that check_log_size() is called every 50 SMB2 requests. Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Fri Jul 8 01:14:53 CEST 2011 on sn-devel-104
This commit is contained in:
parent
eea210eba7
commit
8dc7029561
@ -483,6 +483,8 @@ struct smbd_server_connection {
|
||||
int dirhandles_open;
|
||||
} searches;
|
||||
|
||||
uint64_t num_requests;
|
||||
|
||||
struct {
|
||||
struct fd_event *fde;
|
||||
|
||||
@ -510,7 +512,6 @@ struct smbd_server_connection {
|
||||
int ref_count;
|
||||
} echo_handler;
|
||||
|
||||
uint64_t num_requests;
|
||||
struct {
|
||||
bool encrypted_passwords;
|
||||
bool spnego;
|
||||
|
@ -1621,7 +1621,7 @@ static void process_smb(struct smbd_server_connection *sconn,
|
||||
sconn->trans_num++;
|
||||
|
||||
done:
|
||||
sconn->smb1.num_requests++;
|
||||
sconn->num_requests++;
|
||||
|
||||
/* The timeout_processing function isn't run nearly
|
||||
often enough to implement 'max log size' without
|
||||
@ -1630,7 +1630,7 @@ done:
|
||||
level 10. Checking every 50 SMBs is a nice
|
||||
tradeoff of performance vs log file size overrun. */
|
||||
|
||||
if ((sconn->smb1.num_requests % 50) == 0 &&
|
||||
if ((sconn->num_requests % 50) == 0 &&
|
||||
need_to_check_log_size()) {
|
||||
change_to_root_user();
|
||||
check_log_size();
|
||||
|
@ -2234,6 +2234,8 @@ void smbd_smb2_first_negprot(struct smbd_server_connection *sconn,
|
||||
return;
|
||||
}
|
||||
tevent_req_set_callback(subreq, smbd_smb2_request_incoming, sconn);
|
||||
|
||||
sconn->num_requests++;
|
||||
}
|
||||
|
||||
static void smbd_smb2_request_incoming(struct tevent_req *subreq)
|
||||
@ -2290,4 +2292,19 @@ next:
|
||||
return;
|
||||
}
|
||||
tevent_req_set_callback(subreq, smbd_smb2_request_incoming, sconn);
|
||||
|
||||
sconn->num_requests++;
|
||||
|
||||
/* 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 SMB2s is a nice
|
||||
tradeoff of performance vs log file size overrun. */
|
||||
|
||||
if ((sconn->num_requests % 50) == 0 &&
|
||||
need_to_check_log_size()) {
|
||||
change_to_root_user();
|
||||
check_log_size();
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user