@@ -9,28 +9,40 @@ use imageproc::rect::Rect;
99use log:: error;
1010use tokio:: sync:: Mutex ;
1111
12- use crate :: config:: FONT ;
12+ use crate :: config:: { FONT , SERVER_CONFIG } ;
1313use crate :: config:: time:: { convert_time_local, get_current_millis} ;
1414use crate :: database:: { Database , generate_uuid} ;
1515use crate :: http:: request:: Request ;
16+ use crate :: results;
1617use crate :: ip:: ip_info:: IPInfo ;
1718use crate :: results:: TelemetryData ;
1819
1920pub async fn record_result ( request : & Request , database : & mut Arc < Mutex < dyn Database + Send > > ) -> std:: io:: Result < String > {
2021 let default = "" . to_string ( ) ;
21- let isp_info = request. form_data . get ( "ispinfo" ) . unwrap_or ( & default) ;
22+ let mut ip_address = request. remote_addr . to_string ( ) ;
23+ let mut isp_info = request. form_data . get ( "ispinfo" ) . unwrap_or ( & default) . clone ( ) ;
2224 let extra = request. form_data . get ( "extra" ) . unwrap_or ( & default) ;
2325 let ua = request. headers . get ( "User-Agent" ) . unwrap_or ( & default) ;
2426 let lang = request. headers . get ( "Accept-Language" ) . unwrap_or ( & default) ;
2527 let dl = request. form_data . get ( "dl" ) . unwrap_or ( & default) ;
2628 let ul = request. form_data . get ( "ul" ) . unwrap_or ( & default) ;
2729 let ping = request. form_data . get ( "ping" ) . unwrap_or ( & default) ;
2830 let jitter = request. form_data . get ( "jitter" ) . unwrap_or ( & default) ;
29- let log = request. form_data . get ( "log" ) . unwrap_or ( & default) ;
31+ let mut log = request. form_data . get ( "log" ) . unwrap_or ( & default) . clone ( ) ;
3032 let uuid = generate_uuid ( ) ;
31- let mut data = database. lock ( ) . await ;
32- let insert_db = data. insert ( TelemetryData {
33- ip_address : request. remote_addr . to_string ( ) ,
33+
34+ let config = SERVER_CONFIG . get ( ) . unwrap ( ) ;
35+ if config. redact_ip_addresses {
36+ ip_address = "0.0.0.0" . to_string ( ) ;
37+ results:: redact_hostname ( & mut isp_info, "\" hostname\" :\" REDACTED\" " ) ;
38+ results:: redact_all_ips ( & mut isp_info, "0.0.0.0" ) ;
39+ results:: redact_hostname ( & mut log, "\" hostname\" :\" REDACTED\" " ) ;
40+ results:: redact_all_ips ( & mut log, "0.0.0.0" ) ;
41+ }
42+
43+ let mut database = database. lock ( ) . await ;
44+ let insert_db = database. insert ( TelemetryData {
45+ ip_address,
3446 isp_info : isp_info. to_string ( ) ,
3547 extra : extra. to_string ( ) ,
3648 user_agent : ua. to_string ( ) ,
0 commit comments