@@ -131,10 +131,10 @@ use ed2k_sources::{
131131 global_udp_source_batch_server_attempts, global_udp_source_search_excluded_endpoint,
132132 hash_only_ed2k_search_query, kad_source_result_to_ed2k_found_source, keyword_target,
133133 manifest_has_ed2k_transfer_progress, merge_download_sources, new_direct_ed2k_source_count,
134- plaintext_fallback_for_obfuscated_source , select_ed2k_keyword_metadata ,
135- should_adopt_hash_only_metadata_name , should_query_kad_source_supplement ,
136- should_query_server_udp_source_supplement , should_refresh_ed2k_server_sources ,
137- should_skip_no_progress_source_requery , sort_download_sources, source_endpoint_key, source_key,
134+ select_ed2k_keyword_metadata , should_adopt_hash_only_metadata_name ,
135+ should_query_kad_source_supplement , should_query_server_udp_source_supplement ,
136+ should_refresh_ed2k_server_sources , should_skip_no_progress_source_requery ,
137+ sort_download_sources, source_endpoint_key, source_key,
138138} ;
139139#[ cfg( test) ]
140140use ed2k_sources:: {
@@ -5389,16 +5389,6 @@ where
53895389 peer_addr
53905390 ) ;
53915391 last_error = Some ( error) ;
5392- if let Some ( fallback_source) = plaintext_fallback_for_obfuscated_source ( & source)
5393- {
5394- tracing:: info!(
5395- "ED2K direct download scheduling plaintext fallback file_hash={} peer={}:{}" ,
5396- file_hash_hex,
5397- source. ip,
5398- source. tcp_port
5399- ) ;
5400- pending_sources. push_front ( fallback_source) ;
5401- }
54025392 }
54035393 }
54045394
@@ -5551,8 +5541,6 @@ const ED2K_DOWNLOAD_KAD_SOURCE_QUIET_DELAY_MS: u64 = 750;
55515541const ED2K_DOWNLOAD_SOURCE_REQUERY_ROUNDS : usize = 2 ;
55525542const ED2K_DOWNLOAD_SOURCE_REQUERY_DELAY_SECS : u64 = 5 ;
55535543const ED2K_DOWNLOAD_BACKGROUND_RETRY_SECS : u64 = 5 ;
5554- const ED2K_SOURCE_OBFUSCATION_REQUIRES_CRYPT : u8 = 0x04 ;
5555-
55565544/// Parse a REST-surface IP string (the `Upload.address` / `TransferSource.ip`
55575545/// fields) into an `Ipv4Addr` for the ban store. Returns `None` when the value
55585546/// is empty or not a dialable IPv4 (e.g. a LowID client-id), so the ban falls
@@ -7724,9 +7712,9 @@ mod tests {
77247712 }
77257713
77267714 #[ tokio:: test]
7727- async fn direct_download_scheduler_tries_plaintext_after_optional_obfuscated_failure ( ) {
7715+ async fn direct_download_scheduler_does_not_downgrade_failed_obfuscated_peer ( ) {
77287716 let ( transfer_runtime, secure_ident, file_hash_hex, file_name, file_size) =
7729- completed_ed2k_transfer_runtime ( "emulebb-core-direct-download-plaintext-fallback " )
7717+ completed_ed2k_transfer_runtime ( "emulebb-core-direct-download-no- plaintext-downgrade " )
77307718 . await ;
77317719 let file_hash: Ed2kHash = file_hash_hex. parse ( ) . unwrap ( ) ;
77327720 let attempts = Arc :: new ( Mutex :: new ( Vec :: new ( ) ) ) ;
@@ -7771,22 +7759,15 @@ mod tests {
77717759 . await
77727760 . unwrap ( ) ;
77737761
7774- assert ! ( outcome. completed) ;
77757762 assert_eq ! (
7776- * attempts. lock( ) . await ,
7777- vec![ ( 41001 , true , true ) , ( 41001 , false , false ) ]
7763+ outcome
7764+ . last_error
7765+ . as_ref( )
7766+ . map( ToString :: to_string)
7767+ . as_deref( ) ,
7768+ Some ( "simulated obfuscated peer close" )
77787769 ) ;
7779- }
7780-
7781- #[ test]
7782- fn plaintext_fallback_preserves_crypt_required_sources ( ) {
7783- let file_hash = Ed2kHash :: from_bytes ( [ 0x33 ; 16 ] ) ;
7784- let mut source = direct_test_source ( file_hash, Ipv4Addr :: new ( 192 , 0 , 2 , 10 ) , 41001 ) ;
7785- source. obfuscated = true ;
7786- source. obfuscation_options = Some ( 0x07 ) ;
7787- source. user_hash = Some ( [ 0x22 ; 16 ] ) ;
7788-
7789- assert ! ( plaintext_fallback_for_obfuscated_source( & source) . is_none( ) ) ;
7770+ assert_eq ! ( * attempts. lock( ) . await , vec![ ( 41001 , true , true ) ] ) ;
77907771 }
77917772
77927773 #[ test]
0 commit comments