@@ -366,6 +366,7 @@ pub mod rustls {
366
366
use hyper_base;
367
367
use self :: hyper:: error:: Result as HyperResult ;
368
368
use self :: hyper:: net:: { SslClient , NetworkStream } ;
369
+ use self :: rustls:: Session ;
369
370
use std:: io:: Result as IoResult ;
370
371
use std:: io:: { Read , Write } ;
371
372
use std:: net:: { SocketAddr , Shutdown } ;
@@ -491,8 +492,18 @@ pub mod rustls {
491
492
. and_then ( |mut t| {
492
493
let ( ref mut stream, ref mut tls) = * t;
493
494
while tls. wants_read ( ) {
494
- tls. read_tls ( stream) . unwrap ( ) ; // FIXME
495
- tls. process_new_packets ( ) . unwrap ( ) ; // FIXME
495
+ match tls. read_tls ( stream) {
496
+ Ok ( _) => {
497
+ match tls. process_new_packets ( ) {
498
+ Ok ( _) => ( ) ,
499
+ Err ( e) => return Err ( io:: Error :: new ( io:: ErrorKind :: Other , format ! ( "{:?}" , e) ) )
500
+ }
501
+ while tls. wants_write ( ) {
502
+ try!( tls. write_tls ( stream) ) ;
503
+ }
504
+ } ,
505
+ Err ( e) => return Err ( e) ,
506
+ }
496
507
}
497
508
498
509
tls. read ( buf)
@@ -507,11 +518,9 @@ pub mod rustls {
507
518
self . lock ( )
508
519
. and_then ( |mut t| {
509
520
let ( ref mut stream, ref mut tls) = * t;
510
-
511
521
let res = tls. write ( buf) ;
512
-
513
522
while tls. wants_write ( ) {
514
- tls. write_tls ( stream) . unwrap ( ) ; // FIXME
523
+ try! ( tls. write_tls ( stream) ) ;
515
524
}
516
525
517
526
res
0 commit comments