@@ -47,6 +47,8 @@ use manticore::protocol::wire::WireEnum;
47
47
use manticore:: protocol:: Command ;
48
48
use manticore:: protocol:: Message ;
49
49
use manticore:: server;
50
+ use manticore:: Result ;
51
+ use manticore:: { check, fail} ;
50
52
51
53
/// Sends `req` to a virtual RoT listening on `localhost:{port}`, using
52
54
/// Cerberus-over-TCP.
@@ -84,7 +86,7 @@ pub fn send_cerberus<
84
86
Ok ( Ok ( FromWire :: from_wire ( & mut r, arena) ?) )
85
87
} else if header. command == cerberus:: CommandType :: Error {
86
88
log:: info!( "deserializing {}" , type_name:: <protocol:: Error <' a, Cmd >>( ) ) ;
87
- Ok ( Err ( FromWire :: from_wire ( & mut r, arena) ?) )
89
+ Ok ( Err ( fail ! ( FromWire :: from_wire( & mut r, arena) ?) ) )
88
90
} else {
89
91
Err ( net:: Error :: BadHeader . into ( ) )
90
92
}
@@ -125,7 +127,7 @@ pub fn send_spdm<'a, Cmd: Command<'a, CommandType = spdm::CommandType>>(
125
127
Ok ( Ok ( FromWire :: from_wire ( & mut r, arena) ?) )
126
128
} else if header. command == spdm:: CommandType :: Error {
127
129
log:: info!( "deserializing {}" , type_name:: <protocol:: Error <' a, Cmd >>( ) ) ;
128
- Ok ( Err ( FromWire :: from_wire ( & mut r, arena) ?) )
130
+ Ok ( Err ( fail ! ( FromWire :: from_wire( & mut r, arena) ?) ) )
129
131
} else {
130
132
Err ( net:: Error :: BadHeader . into ( ) )
131
133
}
@@ -140,7 +142,7 @@ impl io::Read for TcpReader {
140
142
fn read_bytes ( & mut self , out : & mut [ u8 ] ) -> Result < ( ) , io:: Error > {
141
143
let Self { tcp, len } = self ;
142
144
if * len < out. len ( ) {
143
- return Err ( io:: Error :: BufferExhausted ) ;
145
+ return Err ( fail ! ( io:: Error :: BufferExhausted ) ) ;
144
146
}
145
147
tcp. read_exact ( out) . map_err ( |e| {
146
148
log:: error!( "{}" , e) ;
@@ -365,22 +367,22 @@ impl<'req, H: Header + 'req> HostRequest<'req, H> for Inner<H> {
365
367
fn header ( & self ) -> Result < H , net:: Error > {
366
368
if self . output_buffer . is_some ( ) {
367
369
log:: error!( "header() called out-of-order" ) ;
368
- return Err ( net:: Error :: OutOfOrder ) ;
370
+ return Err ( fail ! ( net:: Error :: OutOfOrder ) ) ;
369
371
}
370
372
self . stream
371
373
. as_ref ( )
372
374
. map ( |( h, _, _) | * h)
373
- . ok_or ( net:: Error :: Disconnected )
375
+ . ok_or_else ( || fail ! ( net:: Error :: Disconnected ) )
374
376
}
375
377
376
378
fn payload ( & mut self ) -> Result < & mut dyn io:: ReadZero < ' req > , net:: Error > {
377
379
if self . stream . is_none ( ) {
378
380
log:: error!( "payload() called out-of-order" ) ;
379
- return Err ( net:: Error :: Disconnected ) ;
381
+ return Err ( fail ! ( net:: Error :: Disconnected ) ) ;
380
382
}
381
383
if self . output_buffer . is_some ( ) {
382
384
log:: error!( "payload() called out-of-order" ) ;
383
- return Err ( net:: Error :: OutOfOrder ) ;
385
+ return Err ( fail ! ( net:: Error :: OutOfOrder ) ) ;
384
386
}
385
387
386
388
Ok ( self )
@@ -392,11 +394,11 @@ impl<'req, H: Header + 'req> HostRequest<'req, H> for Inner<H> {
392
394
) -> Result < & mut dyn HostResponse < ' req > , net:: Error > {
393
395
if self . stream . is_none ( ) {
394
396
log:: error!( "payload() called out-of-order" ) ;
395
- return Err ( net:: Error :: Disconnected ) ;
397
+ return Err ( fail ! ( net:: Error :: Disconnected ) ) ;
396
398
}
397
399
if self . output_buffer . is_some ( ) {
398
400
log:: error!( "payload() called out-of-order" ) ;
399
- return Err ( net:: Error :: OutOfOrder ) ;
401
+ return Err ( fail ! ( net:: Error :: OutOfOrder ) ) ;
400
402
}
401
403
402
404
self . output_buffer = Some ( Writer :: new ( header) ) ;
@@ -408,13 +410,13 @@ impl<'req, H: Header + 'req> HostResponse<'req> for Inner<H> {
408
410
fn sink ( & mut self ) -> Result < & mut dyn io:: Write , net:: Error > {
409
411
if self . stream . is_none ( ) {
410
412
log:: error!( "sink() called out-of-order" ) ;
411
- return Err ( net:: Error :: Disconnected ) ;
413
+ return Err ( fail ! ( net:: Error :: Disconnected ) ) ;
412
414
}
413
415
414
416
self . output_buffer
415
417
. as_mut ( )
416
418
. map ( |w| w as & mut dyn io:: Write )
417
- . ok_or ( net:: Error :: OutOfOrder )
419
+ . ok_or_else ( || fail ! ( net:: Error :: OutOfOrder ) )
418
420
}
419
421
420
422
fn finish ( & mut self ) -> Result < ( ) , net:: Error > {
@@ -434,7 +436,7 @@ impl<'req, H: Header + 'req> HostResponse<'req> for Inner<H> {
434
436
self . output_buffer = None ;
435
437
Ok ( ( ) )
436
438
}
437
- _ => Err ( net:: Error :: Disconnected ) ,
439
+ _ => Err ( fail ! ( net:: Error :: Disconnected ) ) ,
438
440
}
439
441
}
440
442
}
@@ -443,9 +445,7 @@ impl<H> io::Read for Inner<H> {
443
445
fn read_bytes ( & mut self , out : & mut [ u8 ] ) -> Result < ( ) , io:: Error > {
444
446
let ( _, len, stream) =
445
447
self . stream . as_mut ( ) . ok_or ( io:: Error :: Internal ) ?;
446
- if * len < out. len ( ) {
447
- return Err ( io:: Error :: BufferExhausted ) ;
448
- }
448
+ check ! ( * len >= out. len( ) , io:: Error :: BufferExhausted ) ;
449
449
stream. read_exact ( out) . map_err ( |e| {
450
450
log:: error!( "{}" , e) ;
451
451
io:: Error :: Internal
0 commit comments