File tree Expand file tree Collapse file tree 1 file changed +16
-12
lines changed Expand file tree Collapse file tree 1 file changed +16
-12
lines changed Original file line number Diff line number Diff line change @@ -469,19 +469,23 @@ mod curl {
469
469
// Listen for headers and parse out a `Content-Length` (case-insensitive) if it
470
470
// comes so we know how much we're downloading.
471
471
transfer. header_function ( |header| {
472
+ let Ok ( data) = str:: from_utf8 ( header) else {
473
+ return true ;
474
+ } ;
472
475
let prefix = "content-length: " ;
473
- if let Ok ( data) = str:: from_utf8 ( header)
474
- && data. to_ascii_lowercase ( ) . starts_with ( prefix)
475
- && let Ok ( s) = data[ prefix. len ( ) ..] . trim ( ) . parse :: < u64 > ( )
476
- {
477
- let msg = Event :: DownloadContentLengthReceived ( s + resume_from) ;
478
- match callback ( msg) {
479
- Ok ( ( ) ) => ( ) ,
480
- Err ( e) => {
481
- * cberr. borrow_mut ( ) = Some ( e) ;
482
- return false ;
483
- }
484
- }
476
+ let Some ( ( dp, ds) ) = data. split_at_checked ( prefix. len ( ) ) else {
477
+ return true ;
478
+ } ;
479
+ if !dp. eq_ignore_ascii_case ( prefix) {
480
+ return true ;
481
+ }
482
+ let Ok ( s) = ds. trim ( ) . parse :: < u64 > ( ) else {
483
+ return true ;
484
+ } ;
485
+ let msg = Event :: DownloadContentLengthReceived ( s + resume_from) ;
486
+ if let Err ( e) = callback ( msg) {
487
+ * cberr. borrow_mut ( ) = Some ( e) ;
488
+ return false ;
485
489
}
486
490
true
487
491
} ) ?;
You can’t perform that action at this time.
0 commit comments