diff options
-rw-r--r-- | docs-xml/manpages-3/vfs_smb_traffic_analyzer.8.xml | 11 | ||||
-rw-r--r-- | source3/modules/vfs_smb_traffic_analyzer.c | 21 |
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; } |