jsd.set_string("response", &serv);
}
js.set("service", jsd);
+
+ // share type only for SMB2
+ } else {
+ match x.share_type {
+ 1 => { js.set_string("share_type", "FILE"); },
+ 2 => { js.set_string("share_type", "PIPE"); },
+ 3 => { js.set_string("share_type", "PRINT"); },
+ _ => { js.set_string("share_type", "UNKNOWN"); },
+ }
}
},
Some(SMBTransactionTypeData::FILE(ref x)) => {
#[derive(Debug)]
pub struct SMBTransactionTreeConnect {
pub is_pipe: bool,
+ pub share_type: u8,
pub tree_id: u32,
pub share_name: Vec<u8>,
pub fn new(share_name: Vec<u8>) -> SMBTransactionTreeConnect {
return SMBTransactionTreeConnect {
is_pipe:false,
+ share_type: 0,
tree_id:0,
share_name:share_name,
req_service: None,
let found = match state.get_treeconnect_tx(name_key) {
Some(tx) => {
if let Some(SMBTransactionTypeData::TREECONNECT(ref mut tdn)) = tx.type_data {
+ tdn.share_type = tr.share_type;
tdn.is_pipe = is_pipe;
tdn.tree_id = r.tree_id as u32;
share_name = tdn.share_name.to_vec();