@@ -341,11 +341,7 @@ impl Client {
341
341
/// # Result::<_, anyhow::Error>::Ok(()) });
342
342
/// ```
343
343
pub async fn get_supported_versions ( & self ) -> HttpResult < get_supported_versions:: Response > {
344
- self . send (
345
- get_supported_versions:: Request :: new ( ) ,
346
- Some ( RequestConfig :: new ( ) . disable_retry ( ) ) ,
347
- )
348
- . await
344
+ self . send ( get_supported_versions:: Request :: new ( ) , Some ( RequestConfig :: short_retry ( ) ) ) . await
349
345
}
350
346
351
347
/// Get the capabilities of the homeserver.
@@ -834,7 +830,7 @@ impl Client {
834
830
initial_device_display_name,
835
831
} ) ;
836
832
837
- let response = self . send ( request, None ) . await ?;
833
+ let response = self . send ( request, Some ( RequestConfig :: short_retry ( ) ) ) . await ?;
838
834
self . receive_login_response ( & response) . await ?;
839
835
840
836
Ok ( response)
@@ -1117,7 +1113,7 @@ impl Client {
1117
1113
}
1118
1114
) ;
1119
1115
1120
- let response = self . send ( request, None ) . await ?;
1116
+ let response = self . send ( request, Some ( RequestConfig :: short_retry ( ) ) ) . await ?;
1121
1117
self . receive_login_response ( & response) . await ?;
1122
1118
1123
1119
Ok ( response)
@@ -1249,7 +1245,7 @@ impl Client {
1249
1245
info ! ( "Registering to {}" , homeserver) ;
1250
1246
1251
1247
let config = if self . inner . appservice_mode {
1252
- Some ( self . inner . http_client . request_config . force_auth ( ) )
1248
+ Some ( RequestConfig :: short_retry ( ) . force_auth ( ) )
1253
1249
} else {
1254
1250
None
1255
1251
} ;
@@ -3631,13 +3627,12 @@ pub(crate) mod test {
3631
3627
}
3632
3628
3633
3629
#[ async_test]
3634
- async fn no_retry_http_requests ( ) {
3630
+ async fn short_retry_initial_http_requests ( ) {
3635
3631
let homeserver = Url :: from_str ( & mockito:: server_url ( ) ) . unwrap ( ) ;
3636
- let config = ClientConfig :: default ( ) . request_config ( RequestConfig :: new ( ) . disable_retry ( ) ) ;
3637
- assert ! ( config. request_config. retry_limit. unwrap( ) == 0 ) ;
3638
- let client = Client :: new_with_config ( homeserver, config) . await . unwrap ( ) ;
3632
+ let client = Client :: new ( homeserver) . await . unwrap ( ) ;
3639
3633
3640
- let m = mock ( "POST" , "/_matrix/client/r0/login" ) . with_status ( 501 ) . create ( ) ;
3634
+ let m =
3635
+ mock ( "POST" , "/_matrix/client/r0/login" ) . with_status ( 501 ) . expect_at_least ( 3 ) . create ( ) ;
3641
3636
3642
3637
if client. login ( "example" , "wordpass" , None , None ) . await . is_err ( ) {
3643
3638
m. assert ( ) ;
@@ -3646,6 +3641,19 @@ pub(crate) mod test {
3646
3641
}
3647
3642
}
3648
3643
3644
+ #[ async_test]
3645
+ async fn no_retry_http_requests ( ) {
3646
+ let client = logged_in_client ( ) . await ;
3647
+
3648
+ let m = mock ( "GET" , "/_matrix/client/r0/devices" ) . with_status ( 501 ) . create ( ) ;
3649
+
3650
+ if client. devices ( ) . await . is_err ( ) {
3651
+ m. assert ( ) ;
3652
+ } else {
3653
+ panic ! ( "this request should return an `Err` variant" )
3654
+ }
3655
+ }
3656
+
3649
3657
#[ async_test]
3650
3658
async fn get_media_content ( ) {
3651
3659
let client = logged_in_client ( ) . await ;
0 commit comments