diff options
author | Jeremy Allison <jra@samba.org> | 2005-04-14 23:32:56 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 10:56:37 -0500 |
commit | f60ad8ded6e614f3c0abb2679d3a75096fc595d3 (patch) | |
tree | e7799ae07965fcc11fe7b95726cb375314669e19 | |
parent | da70ef7c06ef55b9049697f13fdaecf8a2f31e35 (diff) | |
download | samba-f60ad8ded6e614f3c0abb2679d3a75096fc595d3.tar.gz samba-f60ad8ded6e614f3c0abb2679d3a75096fc595d3.tar.bz2 samba-f60ad8ded6e614f3c0abb2679d3a75096fc595d3.zip |
r6346: Add a counter for the number of SMB operations per connection/file.
You will need to do a make clean after SVN updating this. Next will
come a smbcontrol message to dump this info. This should be interesting
to profile client activity.
Jeremy.
(This used to be commit 743174da86ac724fc9ee3d4b7bd9a2a97a234bd8)
-rw-r--r-- | source3/include/smb.h | 2 | ||||
-rw-r--r-- | source3/include/smb_macros.h | 1 | ||||
-rw-r--r-- | source3/smbd/process.c | 8 |
3 files changed, 9 insertions, 2 deletions
diff --git a/source3/include/smb.h b/source3/include/smb.h index 80b2075651..f96d79fd06 100644 --- a/source3/include/smb.h +++ b/source3/include/smb.h @@ -412,6 +412,7 @@ typedef struct files_struct { int fnum; struct connection_struct *conn; int fd; + unsigned int num_smb_operations; uint16 rap_print_jobid; SMB_DEV_T dev; SMB_INO_T inode; @@ -533,6 +534,7 @@ typedef struct connection_struct time_t lastused; BOOL used; int num_files_open; + unsigned int num_smb_operations; /* Count of smb operations on this tree. */ BOOL case_sensitive; BOOL case_preserve; diff --git a/source3/include/smb_macros.h b/source3/include/smb_macros.h index ab4ee5ee73..b7a3a68bec 100644 --- a/source3/include/smb_macros.h +++ b/source3/include/smb_macros.h @@ -94,6 +94,7 @@ return(ERROR_DOS(ERRDOS,ERRbadfid)); \ else if((fsp)->fd == -1) \ return(ERROR_DOS(ERRDOS,ERRbadaccess));\ + (fsp)->num_smb_operations++;\ } while(0) #define CHECK_READ(fsp) if (!(fsp)->can_read) \ diff --git a/source3/smbd/process.c b/source3/smbd/process.c index 1bf6f4f9d1..e79686b43e 100644 --- a/source3/smbd/process.c +++ b/source3/smbd/process.c @@ -962,8 +962,12 @@ static int switch_message(int type,char *inbuf,char *outbuf,int size,int bufsize return(ERROR_DOS(ERRSRV,ERRaccess)); /* load service specific parameters */ - if (conn && !set_current_service(conn,SVAL(inbuf,smb_flg),(flags & (AS_USER|DO_CHDIR)?True:False))) - return(ERROR_DOS(ERRSRV,ERRaccess)); + if (conn) { + if (!set_current_service(conn,SVAL(inbuf,smb_flg),(flags & (AS_USER|DO_CHDIR)?True:False))) { + return(ERROR_DOS(ERRSRV,ERRaccess)); + } + conn->num_smb_operations++; + } /* does this protocol need to be run as guest? */ if ((flags & AS_GUEST) && (!change_to_guest() || |