@ -71,13 +71,14 @@ pub fn parse_dcerpc_request_record(i:&[u8], frag_len: u16, little: bool)
#[ derive(Debug,PartialEq, Eq) ]
pub struct DceRpcBindIface < ' a > {
pub ctx_id : u16 ,
pub iface : & ' a [ u8 ] ,
pub ver : u16 ,
pub ver_min : u16 ,
}
pub fn parse_dcerpc_bind_iface ( i : & [ u8 ] ) -> IResult < & [ u8 ] , DceRpcBindIface < ' _ > > {
let ( i , _ ctx_id) = le_u16 . parse ( i ) ? ;
let ( i , ctx_id) = le_u16 . parse ( i ) ? ;
let ( i , _num_trans_items ) = le_u8 . parse ( i ) ? ;
let ( i , _ ) = take ( 1_ usize ) . parse ( i ) ? ; // reserved
let ( i , interface ) = take ( 16_ usize ) . parse ( i ) ? ;
@ -85,6 +86,7 @@ pub fn parse_dcerpc_bind_iface(i: &[u8]) -> IResult<&[u8], DceRpcBindIface<'_>>
let ( i , ver_min ) = le_u16 . parse ( i ) ? ;
let ( i , _ ) = take ( 20_ usize ) . parse ( i ) ? ;
let res = DceRpcBindIface {
ctx_id ,
iface :interface ,
ver ,
ver_min ,
@ -93,7 +95,7 @@ pub fn parse_dcerpc_bind_iface(i: &[u8]) -> IResult<&[u8], DceRpcBindIface<'_>>
}
pub fn parse_dcerpc_bind_iface_big ( i : & [ u8 ] ) -> IResult < & [ u8 ] , DceRpcBindIface < ' _ > > {
let ( i , _ ctx_id) = le_u16 . parse ( i ) ? ;
let ( i , ctx_id) = le_u16 . parse ( i ) ? ;
let ( i , _num_trans_items ) = le_u8 . parse ( i ) ? ;
let ( i , _ ) = take ( 1_ usize ) . parse ( i ) ? ; // reserved
let ( i , interface ) = take ( 16_ usize ) . parse ( i ) ? ;
@ -101,6 +103,7 @@ pub fn parse_dcerpc_bind_iface_big(i: &[u8]) -> IResult<&[u8], DceRpcBindIface<'
let ( i , ver ) = be_u16 . parse ( i ) ? ;
let ( i , _ ) = take ( 20_ usize ) . parse ( i ) ? ;
let res = DceRpcBindIface {
ctx_id ,
iface :interface ,
ver ,
ver_min ,