diff options
author | Holger Hetterich <hhetter@novell.com> | 2008-10-13 14:08:49 -0700 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2008-10-13 14:08:49 -0700 |
commit | 3e1d6c60201a2514dc54b4992b034a954b330c65 (patch) | |
tree | adfad7f44b8d975d34b2a7f01439fbbeb5320a29 | |
parent | 2b1bef7e87e62ff4cb744b1f4564a8fc425f34e2 (diff) | |
download | samba-3e1d6c60201a2514dc54b4992b034a954b330c65.tar.gz samba-3e1d6c60201a2514dc54b4992b034a954b330c65.tar.bz2 samba-3e1d6c60201a2514dc54b4992b034a954b330c65.zip |
Enable optional anonymization of user names,
if the configuration parameter anonymization_prefix is defined in
smb.conf, and use the prefix given there.
-rw-r--r-- | source3/modules/vfs_smb_traffic_analyzer.c | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/source3/modules/vfs_smb_traffic_analyzer.c b/source3/modules/vfs_smb_traffic_analyzer.c index 9b4c1b3e25..be77fc49e0 100644 --- a/source3/modules/vfs_smb_traffic_analyzer.c +++ b/source3/modules/vfs_smb_traffic_analyzer.c @@ -42,6 +42,7 @@ static enum sock_type smb_traffic_analyzer_connMode(vfs_handle_struct *handle) } } + /* Connect to an internet socket */ static int smb_traffic_analyzer_connect_inet_socket(vfs_handle_struct *handle, @@ -160,6 +161,8 @@ static void smb_traffic_analyzer_send_data(vfs_handle_struct *handle, struct tm *tm = NULL; int seconds; char *str = NULL; + char *username = NULL; + const char *anon_prefix = NULL; size_t len; SMB_VFS_HANDLE_GET_DATA(handle, rf_sock, struct refcounted_sock, return); @@ -178,11 +181,31 @@ static void smb_traffic_analyzer_send_data(vfs_handle_struct *handle, } seconds=(float) (tv.tv_usec / 1000); + /* check if anonymization is required */ + + anon_prefix=lp_parm_const_string(SNUM(handle->conn),"smb_traffic_analyzer",\ + "anonymize_prefix", NULL ); + if (anon_prefix!=NULL) { + username = talloc_asprintf(talloc_tos(), + "%s%i", + anon_prefix, + str_checksum( + handle->conn->server_info->sanitized_username ) ); + } else { + username = talloc_asprintf(talloc_tos(), + "%s", + handle->conn->server_info->sanitized_username); + } + + if (!username) { + return; + } + str = talloc_asprintf(talloc_tos(), "V1,%u,\"%s\",\"%s\",\"%c\",\"%s\",\"%s\"," "\"%04d-%02d-%02d %02d:%02d:%02d.%03d\"\n", (unsigned int)result, - handle->conn->server_info->sanitized_username, + username, pdb_get_domain(handle->conn->server_info->sam_account), Write ? 'W' : 'R', handle->conn->connectpath, |