@@ -59,6 +59,16 @@ impl Request {
59
59
}
60
60
}
61
61
62
+ #[ doc( hidden) ]
63
+ pub fn set_peer_addr ( & mut self , peer_addr : Option < impl std:: string:: ToString > ) {
64
+ self . peer_addr = peer_addr. map ( |addr| addr. to_string ( ) ) ;
65
+ }
66
+
67
+ #[ doc( hidden) ]
68
+ pub fn set_local_addr ( & mut self , local_addr : Option < impl std:: string:: ToString > ) {
69
+ self . local_addr = local_addr. map ( |addr| addr. to_string ( ) ) ;
70
+ }
71
+
62
72
/// Get the peer socket address for the underlying transport, if appropriate
63
73
pub fn peer_addr ( & self ) -> Option < & str > {
64
74
self . peer_addr . as_deref ( )
@@ -609,7 +619,7 @@ mod tests {
609
619
#[ test]
610
620
fn test_remote_and_forwarded_for_when_forwarded_is_properly_formatted ( ) {
611
621
let mut request = build_test_request ( ) ;
612
- request. peer_addr = Some ( "127.0.0.1:8000" . parse ( ) . unwrap ( ) ) ;
622
+ request. set_peer_addr ( Some ( "127.0.0.1:8000" ) ) ;
613
623
set_forwarded ( & mut request, "127.0.0.1:8001" ) ;
614
624
615
625
assert_eq ! ( request. forwarded_for( ) , Some ( "127.0.0.1:8001" ) ) ;
@@ -619,7 +629,9 @@ mod tests {
619
629
#[ test]
620
630
fn test_remote_and_forwarded_for_when_forwarded_is_improperly_formatted ( ) {
621
631
let mut request = build_test_request ( ) ;
622
- request. peer_addr = Some ( "127.0.0.1:8000" . parse ( ) . unwrap ( ) ) ;
632
+ request. set_peer_addr ( Some (
633
+ "127.0.0.1:8000" . parse :: < std:: net:: SocketAddr > ( ) . unwrap ( ) ,
634
+ ) ) ;
623
635
624
636
request
625
637
. insert_header ( "Forwarded" , "this is an improperly ;;; formatted header" )
@@ -632,7 +644,9 @@ mod tests {
632
644
#[ test]
633
645
fn test_remote_and_forwarded_for_when_x_forwarded_for_is_set ( ) {
634
646
let mut request = build_test_request ( ) ;
635
- request. peer_addr = Some ( "127.0.0.1:8000" . parse ( ) . unwrap ( ) ) ;
647
+ request. set_peer_addr ( Some (
648
+ std:: path:: PathBuf :: from ( "/dev/random" ) . to_str ( ) . unwrap ( ) ,
649
+ ) ) ;
636
650
set_x_forwarded_for ( & mut request, "forwarded-host.com" ) ;
637
651
638
652
assert_eq ! ( request. forwarded_for( ) , Some ( "forwarded-host.com" ) ) ;
@@ -644,7 +658,7 @@ mod tests {
644
658
let mut request = build_test_request ( ) ;
645
659
set_forwarded ( & mut request, "forwarded.com" ) ;
646
660
set_x_forwarded_for ( & mut request, "forwarded-for-client.com" ) ;
647
- request. peer_addr = Some ( "127.0.0.1:8000" . parse ( ) . unwrap ( ) ) ;
661
+ request. peer_addr = Some ( "127.0.0.1:8000" . into ( ) ) ;
648
662
649
663
assert_eq ! ( request. forwarded_for( ) , Some ( "forwarded.com" . into( ) ) ) ;
650
664
assert_eq ! ( request. remote( ) , Some ( "forwarded.com" . into( ) ) ) ;
@@ -653,7 +667,7 @@ mod tests {
653
667
#[ test]
654
668
fn test_remote_falling_back_to_peer_addr ( ) {
655
669
let mut request = build_test_request ( ) ;
656
- request. peer_addr = Some ( "127.0.0.1:8000" . parse ( ) . unwrap ( ) ) ;
670
+ request. peer_addr = Some ( "127.0.0.1:8000" . into ( ) ) ;
657
671
658
672
assert_eq ! ( request. forwarded_for( ) , None ) ;
659
673
assert_eq ! ( request. remote( ) , Some ( "127.0.0.1:8000" . into( ) ) ) ;
0 commit comments