summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHolger Hetterich <hhetter@novell.com>2009-02-04 15:31:24 +0100
committerJeremy Allison <jra@samba.org>2009-02-13 17:22:25 -0800
commit4261cae2eb8779df1b8940f044fff4215d45358f (patch)
tree76ae0daab4506ef5fa5c44bc58e0cceb6f1ec0ba
parentbcdf345df98ed356d94588f4617280450ff6e890 (diff)
downloadsamba-4261cae2eb8779df1b8940f044fff4215d45358f.tar.gz
samba-4261cae2eb8779df1b8940f044fff4215d45358f.tar.bz2
samba-4261cae2eb8779df1b8940f044fff4215d45358f.zip
Enable total anonymization in vfs_smb_traffic_analyzer, by mapping any user names to the one given by anonymize_prefix, without generating a hash number. This setting is optional and is compatible with the module configuration format of Samba 3.3.
-rw-r--r--docs-xml/manpages-3/vfs_smb_traffic_analyzer.8.xml11
-rw-r--r--source3/modules/vfs_smb_traffic_analyzer.c21
2 files changed, 27 insertions, 5 deletions
diff --git a/docs-xml/manpages-3/vfs_smb_traffic_analyzer.8.xml b/docs-xml/manpages-3/vfs_smb_traffic_analyzer.8.xml
index 556fa3e86e..3a16b61210 100644
--- a/docs-xml/manpages-3/vfs_smb_traffic_analyzer.8.xml
+++ b/docs-xml/manpages-3/vfs_smb_traffic_analyzer.8.xml
@@ -117,6 +117,17 @@
</listitem>
</varlistentry>
+ <varlistentry>
+ <term>smb_traffic_analyzer:total_anonymization = STRING</term>
+ <listitem>
+ <para>If STRING matches to 'yes', the module will replace
+ any user name with the string given by the option
+ smb_traffic_analyzer:anonymize_prefix, without generating
+ an additional hash number. This means that any transfer data
+ will be mapped to a single user, leading to a total
+ anonymization of user related data.</para>
+ </listitem>
+ </varlistentry>
</variablelist>
</refsect1>
diff --git a/source3/modules/vfs_smb_traffic_analyzer.c b/source3/modules/vfs_smb_traffic_analyzer.c
index 3ac5a4971b..a7fbeadbbe 100644
--- a/source3/modules/vfs_smb_traffic_analyzer.c
+++ b/source3/modules/vfs_smb_traffic_analyzer.c
@@ -165,6 +165,7 @@ static void smb_traffic_analyzer_send_data(vfs_handle_struct *handle,
char *str = NULL;
char *username = NULL;
const char *anon_prefix = NULL;
+ const char *total_anonymization = NULL;
size_t len;
SMB_VFS_HANDLE_GET_DATA(handle, rf_sock, struct refcounted_sock, return);
@@ -185,14 +186,24 @@ static void smb_traffic_analyzer_send_data(vfs_handle_struct *handle,
/* check if anonymization is required */
+ total_anonymization=lp_parm_const_string(SNUM(handle->conn),"smb_traffic_analyzer",
+ "total_anonymization", NULL);
+
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 ) );
+ if (total_anonymization!=NULL) {
+ username = talloc_asprintf(talloc_tos(),
+ "%s",
+ anon_prefix);
+ } else {
+ username = talloc_asprintf(talloc_tos(),
+ "%s%i",
+ anon_prefix,
+ str_checksum(
+ handle->conn->server_info->sanitized_username ) );
+ }
+
} else {
username = handle->conn->server_info->sanitized_username;
}