1
1
use curl;
2
2
use git2;
3
- use url:: Url ;
4
3
5
4
use failure:: Error ;
6
5
@@ -34,35 +33,6 @@ fn maybe_spurious(err: &Error) -> bool {
34
33
false
35
34
}
36
35
37
-
38
- /// Suggest the user to update their windows 7 to support modern TLS versions.
39
- /// See https://github.com/rust-lang/cargo/issues/5066 for details.
40
- #[ cfg( windows) ]
41
- fn should_warn_about_old_tls_for_win7 ( url : & Url , err : & Error ) -> bool {
42
- let is_github = url. host_str ( ) == Some ( "github.com" ) ;
43
- let is_cert_error = err. causes ( )
44
- . filter_map ( |e| e. downcast_ref :: < git2:: Error > ( ) )
45
- . find ( |e| e. class ( ) == git2:: ErrorClass :: Net && e. code ( ) == git2:: ErrorCode :: Certificate )
46
- . is_some ( ) ;
47
- is_github && is_cert_error
48
- }
49
-
50
- #[ cfg( not( windows) ) ]
51
- fn should_warn_about_old_tls_for_win7 ( _url : & Url , _err : & Error ) -> bool {
52
- false
53
- }
54
-
55
- const WIN7_TLS_WARNING : & str = "\
56
- Certificate check failure might be caused by outdated TLS on older versions of Windows.
57
- If you are using Windows 7, Windows Server 2008 R2 or Windows Server 2012,
58
- please follow these instructions to enable more secure TLS:
59
-
60
- https://support.microsoft.com/en-us/help/3140245/
61
-
62
- See https://github.com/rust-lang/cargo/issues/5066 for details.
63
- " ;
64
-
65
-
66
36
/// Wrapper method for network call retry logic.
67
37
///
68
38
/// Retry counts provided by Config object `net.retry`. Config shell outputs
@@ -76,22 +46,17 @@ See https://github.com/rust-lang/cargo/issues/5066 for details.
76
46
/// use util::network;
77
47
/// cargo_result = network::with_retry(&config, || something.download());
78
48
/// ```
79
- pub fn with_retry < T , F > ( config : & Config , url : & Url , mut callback : F ) -> CargoResult < T >
49
+ pub fn with_retry < T , F > ( config : & Config , mut callback : F ) -> CargoResult < T >
80
50
where F : FnMut ( ) -> CargoResult < T >
81
51
{
82
52
let mut remaining = config. net_retry ( ) ?;
83
53
loop {
84
54
match callback ( ) {
85
55
Ok ( ret) => return Ok ( ret) ,
86
56
Err ( ref e) if maybe_spurious ( e) && remaining > 0 => {
87
- config. shell ( ) . warn (
88
- format ! ( "spurious network error ({} tries remaining): {}" , remaining, e)
89
- ) ?;
90
-
91
- if should_warn_about_old_tls_for_win7 ( url, e) {
92
- config. shell ( ) . warn ( WIN7_TLS_WARNING ) ?;
93
- }
94
-
57
+ let msg = format ! ( "spurious network error ({} tries \
58
+ remaining): {}", remaining, e) ;
59
+ config. shell ( ) . warn ( msg) ?;
95
60
remaining -= 1 ;
96
61
}
97
62
//todo impl from
@@ -106,8 +71,7 @@ fn with_retry_repeats_the_call_then_works() {
106
71
let error2 = HttpNot200 { code : 502 , url : "Uri" . to_string ( ) } . into ( ) ;
107
72
let mut results: Vec < CargoResult < ( ) > > = vec ! [ Ok ( ( ) ) , Err ( error1) , Err ( error2) ] ;
108
73
let config = Config :: default ( ) . unwrap ( ) ;
109
- let url = "http://example.com" . parse ( ) . unwrap ( ) ;
110
- let result = with_retry ( & config, & url, || results. pop ( ) . unwrap ( ) ) ;
74
+ let result = with_retry ( & config, || results. pop ( ) . unwrap ( ) ) ;
111
75
assert_eq ! ( result. unwrap( ) , ( ) )
112
76
}
113
77
@@ -123,7 +87,6 @@ fn with_retry_finds_nested_spurious_errors() {
123
87
let error2 = CargoError :: from ( error2. context ( "A second chained error" ) ) ;
124
88
let mut results: Vec < CargoResult < ( ) > > = vec ! [ Ok ( ( ) ) , Err ( error1) , Err ( error2) ] ;
125
89
let config = Config :: default ( ) . unwrap ( ) ;
126
- let url = "http://example.com" . parse ( ) . unwrap ( ) ;
127
- let result = with_retry ( & config, & url, || results. pop ( ) . unwrap ( ) ) ;
90
+ let result = with_retry ( & config, || results. pop ( ) . unwrap ( ) ) ;
128
91
assert_eq ! ( result. unwrap( ) , ( ) )
129
92
}
0 commit comments