File tree Expand file tree Collapse file tree 1 file changed +15
-1
lines changed
Expand file tree Collapse file tree 1 file changed +15
-1
lines changed Original file line number Diff line number Diff line change @@ -338,7 +338,9 @@ impl RequestBuilder {
338338 url = match loc {
339339 Ok ( loc) => {
340340 if client. auto_referer . load ( Ordering :: Relaxed ) {
341- headers. set ( Referer ( url. to_string ( ) ) ) ;
341+ if let Some ( referer) = make_referer ( & loc, & url) {
342+ headers. set ( referer) ;
343+ }
342344 }
343345 urls. push ( url) ;
344346 let action = check_redirect ( & client. redirect_policy . lock ( ) . unwrap ( ) , & loc, & urls) ;
@@ -383,6 +385,18 @@ impl fmt::Debug for RequestBuilder {
383385 }
384386}
385387
388+ fn make_referer ( next : & Url , previous : & Url ) -> Option < Referer > {
389+ if next. scheme ( ) == "http" && previous. scheme ( ) == "https" {
390+ return None ;
391+ }
392+
393+ let mut referer = previous. clone ( ) ;
394+ let _ = referer. set_username ( "" ) ;
395+ let _ = referer. set_password ( None ) ;
396+ referer. set_fragment ( None ) ;
397+ Some ( Referer ( referer. into_string ( ) ) )
398+ }
399+
386400#[ cfg( test) ]
387401mod tests {
388402 use super :: * ;
You can’t perform that action at this time.
0 commit comments