pub extern "C" fn smb3_probe_tcp(f: *const Flow, dir: u8, input: *const u8, len: u32, rdir: *mut u8) -> u16 {
let retval = rs_smb_probe_tcp(f, dir, input, len, rdir);
let f = cast_pointer!(f, Flow);
- if unsafe { retval != ALPROTO_SMB } {
- return retval;
- }
- let (sp, dp) = f.get_ports();
- let flags = f.get_flags();
- let fsp = if (flags & FLOW_DIR_REVERSED) != 0 { dp } else { sp };
- let fdp = if (flags & FLOW_DIR_REVERSED) != 0 { sp } else { dp };
- if fsp == 445 && fdp != 445 {
- unsafe {
+ if unsafe { retval != ALPROTO_SMB } {
+ return retval;
+ }
+ let (sp, dp) = f.get_ports();
+ let flags = f.get_flags();
+ let fsp = if (flags & FLOW_DIR_REVERSED) != 0 { dp } else { sp };
+ let fdp = if (flags & FLOW_DIR_REVERSED) != 0 { sp } else { dp };
+ if fsp == 445 && fdp != 445 {
+ unsafe {
if dir & STREAM_TOSERVER != 0 {
*rdir = STREAM_TOCLIENT;
} else {
*rdir = STREAM_TOSERVER;
}
- }
}
+ }
return unsafe { ALPROTO_SMB };
}