]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
Enable optional anonymization of user names,
authorHolger Hetterich <hhetter@novell.com>
Mon, 13 Oct 2008 21:14:25 +0000 (14:14 -0700)
committerJeremy Allison <jra@samba.org>
Mon, 13 Oct 2008 21:14:25 +0000 (14:14 -0700)
if the configuration parameter anonymization_prefix is defined in
smb.conf, and use the prefix given there.

source/modules/vfs_smb_traffic_analyzer.c

index 1402b7c62241edb3721a9894228708cc69f73f70..a4e3a3bda1ab7a0752f608756c23a242cd15ad0d 100644 (file)
@@ -43,6 +43,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,
@@ -161,6 +162,8 @@ static void smb_traffic_analyzer_send_data(vfs_handle_struct *handle,
        struct tm *tm = NULL;
        int seconds;
        char *str = NULL;
+       const char *username = NULL;
+       const char *anon_prefix = NULL;
        size_t len;
 
        SMB_VFS_HANDLE_GET_DATA(handle, rf_sock, struct refcounted_sock, return);
@@ -179,11 +182,27 @@ 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(get_current_username()));
+       } else {
+               username = get_current_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,
-                               get_current_username(),
+                               username,
                                current_user_info.domain,
                                Write ? 'W' : 'R',
                                handle->conn->connectpath,