rust: fix clippy lints for clippy::derive_partial_eq_without_eq

pull/8073/head
Jason Ish 3 years ago committed by Victor Julien
parent 5a10fcd2d8
commit c4034dafa1

@ -71,7 +71,7 @@ impl StreamSlice {
} }
#[repr(C)] #[repr(C)]
#[derive(Default, Debug,PartialEq)] #[derive(Default, Debug,PartialEq, Eq)]
pub struct AppLayerTxConfig { pub struct AppLayerTxConfig {
/// config: log flags /// config: log flags
log_flags: u8, log_flags: u8,
@ -96,7 +96,7 @@ impl AppLayerTxConfig {
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct AppLayerTxData { pub struct AppLayerTxData {
/// config: log flags /// config: log flags
pub config: AppLayerTxConfig, pub config: AppLayerTxConfig,
@ -192,7 +192,7 @@ macro_rules!export_tx_data_get {
} }
#[repr(C)] #[repr(C)]
#[derive(Default,Debug,PartialEq,Copy,Clone)] #[derive(Default,Debug,PartialEq, Eq,Copy,Clone)]
pub struct AppLayerStateData { pub struct AppLayerStateData {
pub file_flags: u16, pub file_flags: u16,
} }
@ -222,7 +222,7 @@ macro_rules!export_state_data_get {
} }
#[repr(C)] #[repr(C)]
#[derive(Default,Debug,PartialEq,Copy,Clone)] #[derive(Default,Debug,PartialEq, Eq,Copy,Clone)]
pub struct AppLayerResult { pub struct AppLayerResult {
pub status: i32, pub status: i32,
pub consumed: u32, pub consumed: u32,
@ -491,7 +491,7 @@ impl AppLayerGetTxIterTuple {
/// LoggerFlags tracks which loggers have already been executed. /// LoggerFlags tracks which loggers have already been executed.
#[repr(C)] #[repr(C)]
#[derive(Default, Debug,PartialEq)] #[derive(Default, Debug,PartialEq, Eq)]
pub struct LoggerFlags { pub struct LoggerFlags {
flags: u32, flags: u32,
} }

@ -83,7 +83,7 @@ pub unsafe extern "C" fn rs_detect_asn1_free(ptr: *mut DetectAsn1Data) {
} }
/// Struct to hold parsed asn1 keyword options /// Struct to hold parsed asn1 keyword options
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct DetectAsn1Data { pub struct DetectAsn1Data {
pub bitstring_overflow: bool, pub bitstring_overflow: bool,
pub double_overflow: bool, pub double_overflow: bool,

@ -44,7 +44,7 @@ const DIR_TOSERVER: u8 = 0b0000_0100;
const DIR_TOCLIENT: u8 = 0b0000_1000; const DIR_TOCLIENT: u8 = 0b0000_1000;
#[repr(C)] #[repr(C)]
#[derive(Debug, PartialEq, Clone, Copy)] #[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum Direction { pub enum Direction {
ToServer = 0x04, ToServer = 0x04,
ToClient = 0x08, ToClient = 0x08,

@ -247,7 +247,7 @@ impl DCERPCUuidEntry {
} }
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct Uuid { pub struct Uuid {
pub time_low: Vec<u8>, pub time_low: Vec<u8>,
pub time_mid: Vec<u8>, pub time_mid: Vec<u8>,
@ -283,7 +283,7 @@ pub struct BindCtxItem {
pub versionminor: u16, pub versionminor: u16,
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct DCERPCBindAckResult { pub struct DCERPCBindAckResult {
pub ack_result: u16, pub ack_result: u16,
pub ack_reason: u16, pub ack_reason: u16,

@ -47,7 +47,7 @@ const DETECT_BYTEMATH_FLAG_REQUIRED: u8 = DETECT_BYTEMATH_FLAG_RESULT
| DETECT_BYTEMATH_FLAG_OPER; | DETECT_BYTEMATH_FLAG_OPER;
#[repr(u8)] #[repr(u8)]
#[derive(Copy, Clone, Debug, PartialEq)] #[derive(Copy, Clone, Debug, PartialEq, Eq)]
// operators: +, -, /, *, <<, >> // operators: +, -, /, *, <<, >>
pub enum ByteMathOperator { pub enum ByteMathOperator {
OperatorNone = 1, OperatorNone = 1,
@ -60,7 +60,7 @@ pub enum ByteMathOperator {
} }
#[repr(u8)] #[repr(u8)]
#[derive(Copy, Clone, Debug, PartialEq)] #[derive(Copy, Clone, Debug, PartialEq, Eq)]
// endian <big|little|dce> // endian <big|little|dce>
pub enum ByteMathEndian { pub enum ByteMathEndian {
EndianNone = 0, EndianNone = 0,
@ -71,7 +71,7 @@ pub enum ByteMathEndian {
pub const DETECT_BYTEMATH_ENDIAN_DEFAULT: ByteMathEndian = ByteMathEndian::BigEndian; pub const DETECT_BYTEMATH_ENDIAN_DEFAULT: ByteMathEndian = ByteMathEndian::BigEndian;
#[repr(u8)] #[repr(u8)]
#[derive(Copy, Clone, Debug, PartialEq)] #[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub enum ByteMathBase { pub enum ByteMathBase {
BaseNone = 0, BaseNone = 0,
BaseOct = 8, BaseOct = 8,

@ -20,7 +20,7 @@ use nom7::error::{ErrorKind, ParseError};
/// Custom rule parse errors. /// Custom rule parse errors.
/// ///
/// Implemented based on the Nom example for implementing custom errors. /// Implemented based on the Nom example for implementing custom errors.
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub enum RuleParseError<I> { pub enum RuleParseError<I> {
InvalidByteMath(String), InvalidByteMath(String),

@ -27,7 +27,7 @@ use std::ffi::{CStr, CString};
use std::str::FromStr; use std::str::FromStr;
#[repr(u8)] #[repr(u8)]
#[derive(Clone, Copy, PartialEq, FromPrimitive, Debug)] #[derive(Clone, Copy, PartialEq, Eq, FromPrimitive, Debug)]
pub enum DetectIPRepDataCmd { pub enum DetectIPRepDataCmd {
IPRepCmdAny = 0, IPRepCmdAny = 0,
IPRepCmdBoth = 1, IPRepCmdBoth = 1,

@ -25,7 +25,7 @@ use std::ffi::CStr;
use std::str::FromStr; use std::str::FromStr;
#[repr(u8)] #[repr(u8)]
#[derive(Clone, Copy, PartialEq, FromPrimitive, Debug)] #[derive(Clone, Copy, PartialEq, Eq, FromPrimitive, Debug)]
pub enum DetectStreamSizeDataFlags { pub enum DetectStreamSizeDataFlags {
StreamSizeServer = 1, StreamSizeServer = 1,
StreamSizeClient = 2, StreamSizeClient = 2,

@ -25,7 +25,7 @@ use nom7::IResult;
use std::ffi::CStr; use std::ffi::CStr;
#[derive(PartialEq, Clone, Debug)] #[derive(PartialEq, Eq, Clone, Debug)]
#[repr(u8)] #[repr(u8)]
pub enum DetectUintMode { pub enum DetectUintMode {
DetectUintModeEqual, DetectUintModeEqual,

@ -20,7 +20,7 @@ use crate::core::*;
use std::ffi::CStr; use std::ffi::CStr;
use std::os::raw::{c_char, c_void}; use std::os::raw::{c_char, c_void};
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct DetectDnsOpcode { pub struct DetectDnsOpcode {
negate: bool, negate: bool,
opcode: u8, opcode: u8,

@ -123,7 +123,7 @@ pub enum DnsFrameType {
} }
#[derive(Debug, PartialEq, AppLayerEvent)] #[derive(Debug, PartialEq, Eq, AppLayerEvent)]
pub enum DNSEvent { pub enum DNSEvent {
MalformedData, MalformedData,
NotRequest, NotRequest,
@ -131,7 +131,7 @@ pub enum DNSEvent {
ZFlagSet, ZFlagSet,
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
#[repr(C)] #[repr(C)]
pub struct DNSHeader { pub struct DNSHeader {
pub tx_id: u16, pub tx_id: u16,
@ -149,7 +149,7 @@ pub struct DNSQueryEntry {
pub rrclass: u16, pub rrclass: u16,
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct DNSRDataSOA { pub struct DNSRDataSOA {
/// Primary name server for this zone /// Primary name server for this zone
pub mname: Vec<u8>, pub mname: Vec<u8>,
@ -167,7 +167,7 @@ pub struct DNSRDataSOA {
pub minimum: u32, pub minimum: u32,
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct DNSRDataSSHFP { pub struct DNSRDataSSHFP {
/// Algorithm number /// Algorithm number
pub algo: u8, pub algo: u8,
@ -177,7 +177,7 @@ pub struct DNSRDataSSHFP {
pub fingerprint: Vec<u8>, pub fingerprint: Vec<u8>,
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct DNSRDataSRV { pub struct DNSRDataSRV {
/// Priority /// Priority
pub priority: u16, pub priority: u16,
@ -190,7 +190,7 @@ pub struct DNSRDataSRV {
} }
/// Represents RData of various formats /// Represents RData of various formats
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub enum DNSRData { pub enum DNSRData {
// RData is an address // RData is an address
A(Vec<u8>), A(Vec<u8>),
@ -211,7 +211,7 @@ pub enum DNSRData {
Unknown(Vec<u8>), Unknown(Vec<u8>),
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct DNSAnswerEntry { pub struct DNSAnswerEntry {
pub name: Vec<u8>, pub name: Vec<u8>,
pub rrtype: u16, pub rrtype: u16,

@ -25,7 +25,7 @@ use std::io::{Cursor, Read, Write};
pub const HTTP2_DECOMPRESSION_CHUNK_SIZE: usize = 0x1000; // 4096 pub const HTTP2_DECOMPRESSION_CHUNK_SIZE: usize = 0x1000; // 4096
#[repr(u8)] #[repr(u8)]
#[derive(Copy, Clone, PartialOrd, PartialEq, Debug)] #[derive(Copy, Clone, PartialOrd, PartialEq, Eq, Debug)]
pub enum HTTP2ContentEncoding { pub enum HTTP2ContentEncoding {
Unknown = 0, Unknown = 0,
Gzip = 1, Gzip = 1,

@ -48,7 +48,7 @@ pub extern "C" fn rs_http2_init(context: &'static mut SuricataFileContext) {
} }
#[repr(u8)] #[repr(u8)]
#[derive(Copy, Clone, PartialOrd, PartialEq)] #[derive(Copy, Clone, PartialOrd, PartialEq, Eq)]
pub enum HTTP2ConnectionState { pub enum HTTP2ConnectionState {
Http2StateInit = 0, Http2StateInit = 0,
Http2StateMagicDone = 1, Http2StateMagicDone = 1,
@ -64,7 +64,7 @@ pub static mut HTTP2_MAX_TABLESIZE: u32 = 65536; // 0x10000
static mut HTTP2_MAX_STREAMS: usize = 4096; // 0x1000 static mut HTTP2_MAX_STREAMS: usize = 4096; // 0x1000
#[repr(u8)] #[repr(u8)]
#[derive(Copy, Clone, PartialOrd, PartialEq, Debug)] #[derive(Copy, Clone, PartialOrd, PartialEq, Eq, Debug)]
pub enum HTTP2FrameUnhandledReason { pub enum HTTP2FrameUnhandledReason {
UnknownType = 0, UnknownType = 0,
TooLong = 1, TooLong = 1,
@ -100,7 +100,7 @@ pub enum HTTP2FrameTypeData {
} }
#[repr(u8)] #[repr(u8)]
#[derive(Copy, Clone, PartialOrd, PartialEq, Debug)] #[derive(Copy, Clone, PartialOrd, PartialEq, Eq, Debug)]
pub enum HTTP2TransactionState { pub enum HTTP2TransactionState {
HTTP2StateIdle = 0, HTTP2StateIdle = 0,
HTTP2StateOpen = 1, HTTP2StateOpen = 1,

@ -32,7 +32,7 @@ use std::fmt;
use std::str::FromStr; use std::str::FromStr;
#[repr(u8)] #[repr(u8)]
#[derive(Clone, Copy, PartialEq, FromPrimitive, Debug)] #[derive(Clone, Copy, PartialEq, Eq, FromPrimitive, Debug)]
pub enum HTTP2FrameType { pub enum HTTP2FrameType {
DATA = 0, DATA = 0,
HEADERS = 1, HEADERS = 1,
@ -74,7 +74,7 @@ impl std::str::FromStr for HTTP2FrameType {
} }
} }
#[derive(PartialEq, Debug)] #[derive(PartialEq, Eq, Debug)]
pub struct HTTP2FrameHeader { pub struct HTTP2FrameHeader {
//we could add detection on (GOAWAY) additional data //we could add detection on (GOAWAY) additional data
pub length: u32, pub length: u32,
@ -103,7 +103,7 @@ pub fn http2_parse_frame_header(i: &[u8]) -> IResult<&[u8], HTTP2FrameHeader> {
} }
#[repr(u32)] #[repr(u32)]
#[derive(Clone, Copy, PartialEq, FromPrimitive, Debug)] #[derive(Clone, Copy, PartialEq, Eq, FromPrimitive, Debug)]
pub enum HTTP2ErrorCode { pub enum HTTP2ErrorCode {
NOERROR = 0, NOERROR = 0,
PROTOCOLERROR = 1, PROTOCOLERROR = 1,
@ -330,7 +330,7 @@ fn http2_frame_header_static(n: u64, dyn_headers: &HTTP2DynTable) -> Option<HTTP
} }
#[repr(u8)] #[repr(u8)]
#[derive(Copy, Clone, PartialOrd, PartialEq, Debug)] #[derive(Copy, Clone, PartialOrd, PartialEq, Eq, Debug)]
pub enum HTTP2HeaderDecodeStatus { pub enum HTTP2HeaderDecodeStatus {
HTTP2HeaderDecodeSuccess = 0, HTTP2HeaderDecodeSuccess = 0,
HTTP2HeaderDecodeSizeUpdate = 1, HTTP2HeaderDecodeSizeUpdate = 1,
@ -681,7 +681,7 @@ pub fn http2_parse_frame_continuation<'a>(
} }
#[repr(u16)] #[repr(u16)]
#[derive(Clone, Copy, PartialEq, FromPrimitive, Debug)] #[derive(Clone, Copy, PartialEq, Eq, FromPrimitive, Debug)]
pub enum HTTP2SettingsId { pub enum HTTP2SettingsId {
SETTINGSHEADERTABLESIZE = 1, SETTINGSHEADERTABLESIZE = 1,
SETTINGSENABLEPUSH = 2, SETTINGSENABLEPUSH = 2,

@ -26,7 +26,7 @@ use crate::ike::ike::{IKEState, IKETransaction, IkeEvent};
use crate::ike::parser::IsakmpHeader; use crate::ike::parser::IsakmpHeader;
use ipsec_parser::{IkeExchangeType, IkePayloadType, IkeV2Header}; use ipsec_parser::{IkeExchangeType, IkePayloadType, IkeV2Header};
#[derive(Clone, Debug, PartialEq)] #[derive(Clone, Debug, PartialEq, Eq)]
#[repr(u8)] #[repr(u8)]
pub enum IKEV2ConnectionState { pub enum IKEV2ConnectionState {
Init, Init,

@ -23,7 +23,7 @@ use std::str::Utf8Error;
const INIT_SIZE: usize = 4096; const INIT_SIZE: usize = 4096;
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub enum JsonError { pub enum JsonError {
InvalidState, InvalidState,
Utf8Error(Utf8Error), Utf8Error(Utf8Error),

@ -23,7 +23,7 @@ use std::ffi::CStr;
use std::ptr; use std::ptr;
use std::str::FromStr; use std::str::FromStr;
#[derive(FromPrimitive, Debug, Copy, Clone, PartialOrd, PartialEq)] #[derive(FromPrimitive, Debug, Copy, Clone, PartialOrd, PartialEq, Eq)]
#[allow(non_camel_case_types)] #[allow(non_camel_case_types)]
#[repr(u8)] #[repr(u8)]
pub enum MQTTFlagState { pub enum MQTTFlagState {

@ -52,7 +52,7 @@ pub enum MQTTOperation {
} }
#[repr(u8)] #[repr(u8)]
#[derive(Clone, Copy, PartialEq, PartialOrd, FromPrimitive, Debug)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, FromPrimitive, Debug)]
pub enum MQTTTypeCode { pub enum MQTTTypeCode {
UNASSIGNED = 0, UNASSIGNED = 0,
CONNECT = 1, CONNECT = 1,

@ -23,7 +23,7 @@ use nom7::combinator::{rest, cond};
use nom7::number::streaming::be_u32; use nom7::number::streaming::be_u32;
use nom7::IResult; use nom7::IResult;
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Nfs2Handle<'a> { pub struct Nfs2Handle<'a> {
pub value: &'a[u8], pub value: &'a[u8],
} }
@ -33,7 +33,7 @@ pub fn parse_nfs2_handle(i: &[u8]) -> IResult<&[u8], Nfs2Handle> {
Ok((i, Nfs2Handle { value })) Ok((i, Nfs2Handle { value }))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Nfs2RequestLookup<'a> { pub struct Nfs2RequestLookup<'a> {
pub handle: Nfs2Handle<'a>, pub handle: Nfs2Handle<'a>,
pub name_vec: Vec<u8>, pub name_vec: Vec<u8>,
@ -51,7 +51,7 @@ pub fn parse_nfs2_request_lookup(i: &[u8]) -> IResult<&[u8], Nfs2RequestLookup>
Ok((i, req)) Ok((i, req))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Nfs2RequestRead<'a> { pub struct Nfs2RequestRead<'a> {
pub handle: Nfs2Handle<'a>, pub handle: Nfs2Handle<'a>,
pub offset: u32, pub offset: u32,
@ -84,7 +84,7 @@ pub fn parse_nfs2_reply_read(i: &[u8]) -> IResult<&[u8], NfsReplyRead> {
Ok((i, reply)) Ok((i, reply))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Nfs2Attributes<> { pub struct Nfs2Attributes<> {
pub atype: u32, pub atype: u32,
pub asize: u32, pub asize: u32,

@ -25,7 +25,7 @@ use nom7::multi::{length_data, many0};
use nom7::number::streaming::{be_u32, be_u64}; use nom7::number::streaming::{be_u32, be_u64};
use nom7::IResult; use nom7::IResult;
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct Nfs3Handle<'a> { pub struct Nfs3Handle<'a> {
pub len: u32, pub len: u32,
pub value: &'a [u8], pub value: &'a [u8],
@ -38,7 +38,7 @@ pub fn parse_nfs3_handle(i: &[u8]) -> IResult<&[u8], Nfs3Handle> {
Ok((i, handle)) Ok((i, handle))
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct Nfs3ReplyCreate<'a> { pub struct Nfs3ReplyCreate<'a> {
pub status: u32, pub status: u32,
pub handle: Option<Nfs3Handle<'a>>, pub handle: Option<Nfs3Handle<'a>>,
@ -52,7 +52,7 @@ pub fn parse_nfs3_response_create(i: &[u8]) -> IResult<&[u8], Nfs3ReplyCreate> {
Ok((i, reply)) Ok((i, reply))
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct Nfs3ReplyLookup<'a> { pub struct Nfs3ReplyLookup<'a> {
pub status: u32, pub status: u32,
pub handle: Nfs3Handle<'a>, pub handle: Nfs3Handle<'a>,
@ -65,7 +65,7 @@ pub fn parse_nfs3_response_lookup(i: &[u8]) -> IResult<&[u8], Nfs3ReplyLookup> {
Ok((i, reply)) Ok((i, reply))
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct Nfs3RequestCreate<'a> { pub struct Nfs3RequestCreate<'a> {
pub handle: Nfs3Handle<'a>, pub handle: Nfs3Handle<'a>,
pub name_len: u32, pub name_len: u32,
@ -91,7 +91,7 @@ pub fn parse_nfs3_request_create(i: &[u8]) -> IResult<&[u8], Nfs3RequestCreate>
Ok((i, req)) Ok((i, req))
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct Nfs3RequestRemove<'a> { pub struct Nfs3RequestRemove<'a> {
pub handle: Nfs3Handle<'a>, pub handle: Nfs3Handle<'a>,
pub name_len: u32, pub name_len: u32,
@ -111,7 +111,7 @@ pub fn parse_nfs3_request_remove(i: &[u8]) -> IResult<&[u8], Nfs3RequestRemove>
Ok((i, req)) Ok((i, req))
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct Nfs3RequestRmdir<'a> { pub struct Nfs3RequestRmdir<'a> {
pub handle: Nfs3Handle<'a>, pub handle: Nfs3Handle<'a>,
pub name_vec: Vec<u8>, pub name_vec: Vec<u8>,
@ -129,7 +129,7 @@ pub fn parse_nfs3_request_rmdir(i: &[u8]) -> IResult<&[u8], Nfs3RequestRmdir> {
Ok((i, req)) Ok((i, req))
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct Nfs3RequestMkdir<'a> { pub struct Nfs3RequestMkdir<'a> {
pub handle: Nfs3Handle<'a>, pub handle: Nfs3Handle<'a>,
pub name_vec: Vec<u8>, pub name_vec: Vec<u8>,
@ -148,7 +148,7 @@ pub fn parse_nfs3_request_mkdir(i: &[u8]) -> IResult<&[u8], Nfs3RequestMkdir> {
Ok((i, req)) Ok((i, req))
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct Nfs3RequestRename<'a> { pub struct Nfs3RequestRename<'a> {
pub from_handle: Nfs3Handle<'a>, pub from_handle: Nfs3Handle<'a>,
pub from_name_vec: Vec<u8>, pub from_name_vec: Vec<u8>,
@ -175,7 +175,7 @@ pub fn parse_nfs3_request_rename(i: &[u8]) -> IResult<&[u8], Nfs3RequestRename>
Ok((i, req)) Ok((i, req))
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct Nfs3RequestGetAttr<'a> { pub struct Nfs3RequestGetAttr<'a> {
pub handle: Nfs3Handle<'a>, pub handle: Nfs3Handle<'a>,
} }
@ -185,7 +185,7 @@ pub fn parse_nfs3_request_getattr(i: &[u8]) -> IResult<&[u8], Nfs3RequestGetAttr
Ok((i, Nfs3RequestGetAttr { handle })) Ok((i, Nfs3RequestGetAttr { handle }))
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct Nfs3RequestAccess<'a> { pub struct Nfs3RequestAccess<'a> {
pub handle: Nfs3Handle<'a>, pub handle: Nfs3Handle<'a>,
pub check_access: u32, pub check_access: u32,
@ -201,7 +201,7 @@ pub fn parse_nfs3_request_access(i: &[u8]) -> IResult<&[u8], Nfs3RequestAccess>
Ok((i, req)) Ok((i, req))
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct Nfs3RequestCommit<'a> { pub struct Nfs3RequestCommit<'a> {
pub handle: Nfs3Handle<'a>, pub handle: Nfs3Handle<'a>,
} }
@ -213,7 +213,7 @@ pub fn parse_nfs3_request_commit(i: &[u8]) -> IResult<&[u8], Nfs3RequestCommit>
Ok((i, Nfs3RequestCommit { handle })) Ok((i, Nfs3RequestCommit { handle }))
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct Nfs3RequestRead<'a> { pub struct Nfs3RequestRead<'a> {
pub handle: Nfs3Handle<'a>, pub handle: Nfs3Handle<'a>,
pub offset: u64, pub offset: u64,
@ -226,7 +226,7 @@ pub fn parse_nfs3_request_read(i: &[u8]) -> IResult<&[u8], Nfs3RequestRead> {
Ok((i, Nfs3RequestRead { handle, offset })) Ok((i, Nfs3RequestRead { handle, offset }))
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct Nfs3RequestLookup<'a> { pub struct Nfs3RequestLookup<'a> {
pub handle: Nfs3Handle<'a>, pub handle: Nfs3Handle<'a>,
pub name_vec: Vec<u8>, pub name_vec: Vec<u8>,
@ -243,7 +243,7 @@ pub fn parse_nfs3_request_lookup(i: &[u8]) -> IResult<&[u8], Nfs3RequestLookup>
Ok((i, req)) Ok((i, req))
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct Nfs3ResponseReaddirplusEntryC<'a> { pub struct Nfs3ResponseReaddirplusEntryC<'a> {
pub name_vec: Vec<u8>, pub name_vec: Vec<u8>,
pub handle: Option<Nfs3Handle<'a>>, pub handle: Option<Nfs3Handle<'a>>,
@ -268,7 +268,7 @@ pub fn parse_nfs3_response_readdirplus_entry(
Ok((i, resp)) Ok((i, resp))
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct Nfs3ResponseReaddirplusEntry<'a> { pub struct Nfs3ResponseReaddirplusEntry<'a> {
pub entry: Option<Nfs3ResponseReaddirplusEntryC<'a>>, pub entry: Option<Nfs3ResponseReaddirplusEntryC<'a>>,
} }
@ -281,7 +281,7 @@ pub fn parse_nfs3_response_readdirplus_entry_cond(
Ok((i, Nfs3ResponseReaddirplusEntry { entry })) Ok((i, Nfs3ResponseReaddirplusEntry { entry }))
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct Nfs3ResponseReaddirplus<'a> { pub struct Nfs3ResponseReaddirplus<'a> {
pub status: u32, pub status: u32,
pub data: &'a [u8], pub data: &'a [u8],
@ -304,7 +304,7 @@ pub(crate) fn many0_nfs3_response_readdirplus_entries<'a>(
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct Nfs3RequestReaddirplus<'a> { pub struct Nfs3RequestReaddirplus<'a> {
pub handle: Nfs3Handle<'a>, pub handle: Nfs3Handle<'a>,
pub cookie: u64, pub cookie: u64,
@ -329,7 +329,7 @@ pub fn parse_nfs3_request_readdirplus(i: &[u8]) -> IResult<&[u8], Nfs3RequestRea
Ok((i, req)) Ok((i, req))
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct Nfs3RequestWrite<'a> { pub struct Nfs3RequestWrite<'a> {
pub handle: Nfs3Handle<'a>, pub handle: Nfs3Handle<'a>,
pub offset: u64, pub offset: u64,

@ -36,7 +36,7 @@ const RPCSEC_GSS: u32 = 6;
// Linux defines NFSD_MAX_OPS_PER_COMPOUND to 16 (tested in Linux 5.15.1). // Linux defines NFSD_MAX_OPS_PER_COMPOUND to 16 (tested in Linux 5.15.1).
const NFSD_MAX_OPS_PER_COMPOUND: usize = 64; const NFSD_MAX_OPS_PER_COMPOUND: usize = 64;
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub enum Nfs4RequestContent<'a> { pub enum Nfs4RequestContent<'a> {
PutFH(Nfs4Handle<'a>), PutFH(Nfs4Handle<'a>),
GetFH, GetFH,
@ -72,7 +72,7 @@ pub enum Nfs4RequestContent<'a> {
DestroyClientID(&'a[u8]), DestroyClientID(&'a[u8]),
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Nfs4Attr { pub struct Nfs4Attr {
attr_mask: u64, attr_mask: u64,
} }
@ -106,7 +106,7 @@ fn nfs4_parse_attrbits(i: &[u8]) -> IResult<&[u8], Nfs4Attr> {
Ok((i, attr)) Ok((i, attr))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Nfs4StateId<'a> { pub struct Nfs4StateId<'a> {
pub seqid: u32, pub seqid: u32,
pub data: &'a[u8], pub data: &'a[u8],
@ -119,7 +119,7 @@ fn nfs4_parse_stateid(i: &[u8]) -> IResult<&[u8], Nfs4StateId> {
Ok((i, state)) Ok((i, state))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Nfs4Handle<'a> { pub struct Nfs4Handle<'a> {
pub len: u32, pub len: u32,
pub value: &'a[u8], pub value: &'a[u8],
@ -139,7 +139,7 @@ fn nfs4_parse_nfsstring(i: &[u8]) -> IResult<&[u8], &[u8]> {
Ok((i, data)) Ok((i, data))
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct Nfs4RequestLayoutReturn<'a> { pub struct Nfs4RequestLayoutReturn<'a> {
pub layout_type: u32, pub layout_type: u32,
pub return_type: u32, pub return_type: u32,
@ -167,7 +167,7 @@ fn nfs4_req_layoutreturn(i: &[u8]) -> IResult<&[u8], Nfs4RequestContent> {
Ok((i, req)) Ok((i, req))
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct Nfs4RequestGetDevInfo<'a> { pub struct Nfs4RequestGetDevInfo<'a> {
pub device_id: &'a[u8], pub device_id: &'a[u8],
pub layout_type: u32, pub layout_type: u32,
@ -190,7 +190,7 @@ fn nfs4_req_getdevinfo(i: &[u8]) -> IResult<&[u8], Nfs4RequestContent> {
Ok((i, req)) Ok((i, req))
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct Nfs4RequestCreateSession<'a> { pub struct Nfs4RequestCreateSession<'a> {
pub client_id: &'a[u8], pub client_id: &'a[u8],
pub seqid: u32, pub seqid: u32,
@ -222,7 +222,7 @@ fn nfs4_req_putfh(i: &[u8]) -> IResult<&[u8], Nfs4RequestContent> {
map(nfs4_parse_handle, Nfs4RequestContent::PutFH)(i) map(nfs4_parse_handle, Nfs4RequestContent::PutFH)(i)
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Nfs4RequestSetClientId<'a> { pub struct Nfs4RequestSetClientId<'a> {
pub client_id: &'a[u8], pub client_id: &'a[u8],
pub r_netid: &'a[u8], pub r_netid: &'a[u8],
@ -250,7 +250,7 @@ fn nfs4_req_setclientid_confirm(i: &[u8]) -> IResult<&[u8], Nfs4RequestContent>
Ok((i, Nfs4RequestContent::SetClientIdConfirm)) Ok((i, Nfs4RequestContent::SetClientIdConfirm))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Nfs4RequestCreate<'a> { pub struct Nfs4RequestCreate<'a> {
pub ftype4: u32, pub ftype4: u32,
pub filename: &'a[u8], pub filename: &'a[u8],
@ -270,7 +270,7 @@ fn nfs4_req_create(i: &[u8]) -> IResult<&[u8], Nfs4RequestContent> {
Ok((i, req)) Ok((i, req))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub enum Nfs4OpenRequestContent<'a> { pub enum Nfs4OpenRequestContent<'a> {
Exclusive4(&'a[u8]), Exclusive4(&'a[u8]),
Unchecked4(Nfs4Attr), Unchecked4(Nfs4Attr),
@ -300,7 +300,7 @@ fn nfs4_req_open_type(i: &[u8]) -> IResult<&[u8], Nfs4OpenRequestContent> {
Ok((i, data)) Ok((i, data))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Nfs4RequestOpen<'a> { pub struct Nfs4RequestOpen<'a> {
pub open_type: u32, pub open_type: u32,
pub filename: &'a[u8], pub filename: &'a[u8],
@ -335,7 +335,7 @@ fn nfs4_req_readdir(i: &[u8]) -> IResult<&[u8], Nfs4RequestContent> {
Ok((i, Nfs4RequestContent::ReadDir)) Ok((i, Nfs4RequestContent::ReadDir))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Nfs4RequestRename<'a> { pub struct Nfs4RequestRename<'a> {
pub oldname: &'a[u8], pub oldname: &'a[u8],
pub newname: &'a[u8], pub newname: &'a[u8],
@ -351,7 +351,7 @@ fn nfs4_req_rename(i: &[u8]) -> IResult<&[u8], Nfs4RequestContent> {
Ok((i, req)) Ok((i, req))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Nfs4RequestLookup<'a> { pub struct Nfs4RequestLookup<'a> {
pub filename: &'a[u8], pub filename: &'a[u8],
} }
@ -375,7 +375,7 @@ fn nfs4_req_secinfo_no_name(i: &[u8]) -> IResult<&[u8], Nfs4RequestContent> {
map(be_u32, Nfs4RequestContent::SecInfoNoName) (i) map(be_u32, Nfs4RequestContent::SecInfoNoName) (i)
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Nfs4RequestSetAttr<'a> { pub struct Nfs4RequestSetAttr<'a> {
pub stateid: Nfs4StateId<'a>, pub stateid: Nfs4StateId<'a>,
} }
@ -391,7 +391,7 @@ fn nfs4_req_getattr(i: &[u8]) -> IResult<&[u8], Nfs4RequestContent> {
map(nfs4_parse_attrbits, Nfs4RequestContent::GetAttr)(i) map(nfs4_parse_attrbits, Nfs4RequestContent::GetAttr)(i)
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Nfs4RequestWrite<'a> { pub struct Nfs4RequestWrite<'a> {
pub stateid: Nfs4StateId<'a>, pub stateid: Nfs4StateId<'a>,
pub offset: u64, pub offset: u64,
@ -417,7 +417,7 @@ fn nfs4_req_write(i: &[u8]) -> IResult<&[u8], Nfs4RequestContent> {
Ok((i, req)) Ok((i, req))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Nfs4RequestRead<'a> { pub struct Nfs4RequestRead<'a> {
pub stateid: Nfs4StateId<'a>, pub stateid: Nfs4StateId<'a>,
pub offset: u64, pub offset: u64,
@ -442,7 +442,7 @@ fn nfs4_req_close(i: &[u8]) -> IResult<&[u8], Nfs4RequestContent> {
Ok((i, Nfs4RequestContent::Close(stateid))) Ok((i, Nfs4RequestContent::Close(stateid)))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Nfs4RequestOpenConfirm<'a> { pub struct Nfs4RequestOpenConfirm<'a> {
pub stateid: Nfs4StateId<'a>, pub stateid: Nfs4StateId<'a>,
} }
@ -495,7 +495,7 @@ fn nfs4_req_destroy_clientid(i: &[u8]) -> IResult<&[u8], Nfs4RequestContent> {
Ok((i, Nfs4RequestContent::DestroyClientID(client_id))) Ok((i, Nfs4RequestContent::DestroyClientID(client_id)))
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct Nfs4RequestLayoutGet<'a> { pub struct Nfs4RequestLayoutGet<'a> {
pub layout_type: u32, pub layout_type: u32,
pub length: u64, pub length: u64,
@ -521,7 +521,7 @@ fn nfs4_req_layoutget(i: &[u8]) -> IResult<&[u8], Nfs4RequestContent> {
Ok((i, req)) Ok((i, req))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Nfs4RequestExchangeId<'a> { pub struct Nfs4RequestExchangeId<'a> {
pub client_string: &'a[u8], pub client_string: &'a[u8],
pub nii_domain: &'a[u8], pub nii_domain: &'a[u8],
@ -546,7 +546,7 @@ fn nfs4_req_exchangeid(i: &[u8]) -> IResult<&[u8], Nfs4RequestContent> {
Ok((i, req)) Ok((i, req))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Nfs4RequestSequence<'a> { pub struct Nfs4RequestSequence<'a> {
pub ssn_id: &'a[u8], pub ssn_id: &'a[u8],
} }
@ -603,7 +603,7 @@ fn parse_request_compound_command(i: &[u8]) -> IResult<&[u8], Nfs4RequestContent
Ok((i, cmd_data)) Ok((i, cmd_data))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Nfs4RequestCompoundRecord<'a> { pub struct Nfs4RequestCompoundRecord<'a> {
pub commands: Vec<Nfs4RequestContent<'a>>, pub commands: Vec<Nfs4RequestContent<'a>>,
} }
@ -620,7 +620,7 @@ pub fn parse_nfs4_request_compound(i: &[u8]) -> IResult<&[u8], Nfs4RequestCompou
Ok((i, Nfs4RequestCompoundRecord { commands })) Ok((i, Nfs4RequestCompoundRecord { commands }))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub enum Nfs4ResponseContent<'a> { pub enum Nfs4ResponseContent<'a> {
PutFH(u32), PutFH(u32),
PutRootFH(u32), PutRootFH(u32),
@ -663,7 +663,7 @@ fn nfs4_res_layoutreturn(i:&[u8]) -> IResult<&[u8], Nfs4ResponseContent> {
Ok((i, Nfs4ResponseContent::LayoutReturn(status))) Ok((i, Nfs4ResponseContent::LayoutReturn(status)))
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct Nfs4ResponseCreateSession<'a> { pub struct Nfs4ResponseCreateSession<'a> {
pub ssn_id: &'a[u8], pub ssn_id: &'a[u8],
pub seq_id: u32, pub seq_id: u32,
@ -687,7 +687,7 @@ fn nfs4_res_create_session(i: &[u8]) -> IResult<&[u8], Nfs4ResponseContent> {
Ok((i, Nfs4ResponseContent::CreateSession( status, create_ssn_data ))) Ok((i, Nfs4ResponseContent::CreateSession( status, create_ssn_data )))
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct Nfs4ResponseExchangeId<'a> { pub struct Nfs4ResponseExchangeId<'a> {
pub client_id: &'a[u8], pub client_id: &'a[u8],
pub eir_minorid: u64, pub eir_minorid: u64,
@ -728,7 +728,7 @@ fn nfs4_res_exchangeid(i: &[u8]) -> IResult<&[u8], Nfs4ResponseContent> {
Ok((i, Nfs4ResponseContent::ExchangeId( status, xchngid_data))) Ok((i, Nfs4ResponseContent::ExchangeId( status, xchngid_data)))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Nfs4ResponseWrite { pub struct Nfs4ResponseWrite {
pub count: u32, pub count: u32,
pub committed: u32, pub committed: u32,
@ -747,7 +747,7 @@ fn nfs4_res_write(i: &[u8]) -> IResult<&[u8], Nfs4ResponseContent> {
Ok((i, Nfs4ResponseContent::Write(status, wd))) Ok((i, Nfs4ResponseContent::Write(status, wd)))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Nfs4ResponseRead<'a> { pub struct Nfs4ResponseRead<'a> {
pub eof: bool, pub eof: bool,
pub count: u32, pub count: u32,
@ -772,21 +772,21 @@ fn nfs4_res_read(i: &[u8]) -> IResult<&[u8], Nfs4ResponseContent> {
Ok((i, Nfs4ResponseContent::Read(status, rd))) Ok((i, Nfs4ResponseContent::Read(status, rd)))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Nfs4ResponseOpen<'a> { pub struct Nfs4ResponseOpen<'a> {
pub stateid: Nfs4StateId<'a>, pub stateid: Nfs4StateId<'a>,
pub result_flags: u32, pub result_flags: u32,
pub delegate: Nfs4ResponseFileDelegation<'a>, pub delegate: Nfs4ResponseFileDelegation<'a>,
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub enum Nfs4ResponseFileDelegation<'a> { pub enum Nfs4ResponseFileDelegation<'a> {
DelegateRead(Nfs4ResponseOpenDelegateRead<'a>), DelegateRead(Nfs4ResponseOpenDelegateRead<'a>),
DelegateWrite(Nfs4ResponseOpenDelegateWrite<'a>), DelegateWrite(Nfs4ResponseOpenDelegateWrite<'a>),
DelegateNone(u32), DelegateNone(u32),
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct Nfs4ResponseOpenDelegateWrite<'a> { pub struct Nfs4ResponseOpenDelegateWrite<'a> {
pub stateid: Nfs4StateId<'a>, pub stateid: Nfs4StateId<'a>,
pub who: &'a[u8], pub who: &'a[u8],
@ -807,7 +807,7 @@ fn nfs4_res_open_ok_delegate_write(i: &[u8]) -> IResult<&[u8], Nfs4ResponseFileD
}))) })))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Nfs4ResponseOpenDelegateRead<'a> { pub struct Nfs4ResponseOpenDelegateRead<'a> {
pub stateid: Nfs4StateId<'a>, pub stateid: Nfs4StateId<'a>,
} }
@ -856,7 +856,7 @@ fn nfs4_res_open(i: &[u8]) -> IResult<&[u8], Nfs4ResponseContent> {
Ok((i, Nfs4ResponseContent::Open(status, open_data))) Ok((i, Nfs4ResponseContent::Open(status, open_data)))
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct Nfs4ResponseGetDevInfo<'a> { pub struct Nfs4ResponseGetDevInfo<'a> {
pub layout_type: u32, pub layout_type: u32,
pub r_netid: &'a[u8], pub r_netid: &'a[u8],
@ -888,7 +888,7 @@ fn nfs4_res_getdevinfo(i: &[u8]) -> IResult<&[u8], Nfs4ResponseContent> {
/*https://datatracker.ietf.org/doc/html/rfc5661#section-13.1*/ /*https://datatracker.ietf.org/doc/html/rfc5661#section-13.1*/
// in case of multiple file handles, return handles in a vector // in case of multiple file handles, return handles in a vector
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct Nfs4ResponseLayoutGet<'a> { pub struct Nfs4ResponseLayoutGet<'a> {
pub stateid: Nfs4StateId<'a>, pub stateid: Nfs4StateId<'a>,
pub length: u64, pub length: u64,
@ -965,12 +965,12 @@ fn nfs4_res_secinfo_no_name(i: &[u8]) -> IResult<&[u8], Nfs4ResponseContent> {
Ok((i, Nfs4ResponseContent::SecInfoNoName(status))) Ok((i, Nfs4ResponseContent::SecInfoNoName(status)))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Nfs4ResponseReaddirEntry<'a> { pub struct Nfs4ResponseReaddirEntry<'a> {
pub name: &'a[u8], pub name: &'a[u8],
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Nfs4ResponseReaddir<'a> { pub struct Nfs4ResponseReaddir<'a> {
pub eof: bool, pub eof: bool,
pub listing: Vec<Option<Nfs4ResponseReaddirEntry<'a>>>, pub listing: Vec<Option<Nfs4ResponseReaddirEntry<'a>>>,
@ -1114,7 +1114,7 @@ fn nfs4_res_commit(i: &[u8]) -> IResult<&[u8], Nfs4ResponseContent> {
Ok((i, Nfs4ResponseContent::Commit(status))) Ok((i, Nfs4ResponseContent::Commit(status)))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Nfs4ResponseAccess { pub struct Nfs4ResponseAccess {
pub supported_types: u32, pub supported_types: u32,
pub access_rights: u32, pub access_rights: u32,
@ -1136,7 +1136,7 @@ fn nfs4_res_access(i: &[u8]) -> IResult<&[u8], Nfs4ResponseContent> {
Ok((i, Nfs4ResponseContent::Access(status, ad))) Ok((i, Nfs4ResponseContent::Access(status, ad)))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Nfs4ResponseSequence<'a> { pub struct Nfs4ResponseSequence<'a> {
pub ssn_id: &'a[u8], pub ssn_id: &'a[u8],
} }
@ -1203,7 +1203,7 @@ fn nfs4_res_compound_command(i: &[u8]) -> IResult<&[u8], Nfs4ResponseContent> {
Ok((i, cmd_data)) Ok((i, cmd_data))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Nfs4ResponseCompoundRecord<'a> { pub struct Nfs4ResponseCompoundRecord<'a> {
pub status: u32, pub status: u32,
pub commands: Vec<Nfs4ResponseContent<'a>>, pub commands: Vec<Nfs4ResponseContent<'a>>,

@ -17,7 +17,7 @@
//! Nom parsers for NFS //! Nom parsers for NFS
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct NfsReplyRead<'a> { pub struct NfsReplyRead<'a> {
pub status: u32, pub status: u32,
pub attr_follows: u32, pub attr_follows: u32,

@ -31,14 +31,14 @@ pub const RPC_MAX_MACHINE_SIZE: u32 = 256; // Linux kernel defines 64.
pub const RPC_MAX_CREDS_SIZE: u32 = 4096; // Linux kernel defines 400. pub const RPC_MAX_CREDS_SIZE: u32 = 4096; // Linux kernel defines 400.
pub const RPC_MAX_VERIFIER_SIZE: u32 = 4096; // Linux kernel defines 400. pub const RPC_MAX_VERIFIER_SIZE: u32 = 4096; // Linux kernel defines 400.
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub enum RpcRequestCreds<'a> { pub enum RpcRequestCreds<'a> {
Unix(RpcRequestCredsUnix<'a>), Unix(RpcRequestCredsUnix<'a>),
GssApi(RpcRequestCredsGssApi<'a>), GssApi(RpcRequestCredsGssApi<'a>),
Unknown(&'a [u8]), Unknown(&'a [u8]),
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct RpcRequestCredsUnix<'a> { pub struct RpcRequestCredsUnix<'a> {
pub stamp: u32, pub stamp: u32,
pub machine_name_len: u32, pub machine_name_len: u32,
@ -71,7 +71,7 @@ fn parse_rpc_request_creds_unix(i: &[u8]) -> IResult<&[u8], RpcRequestCreds> {
Ok((i, creds)) Ok((i, creds))
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct RpcRequestCredsGssApi<'a> { pub struct RpcRequestCredsGssApi<'a> {
pub version: u32, pub version: u32,
pub procedure: u32, pub procedure: u32,
@ -101,7 +101,7 @@ fn parse_rpc_request_creds_unknown(i: &[u8]) -> IResult<&[u8], RpcRequestCreds>
Ok((&[], RpcRequestCreds::Unknown(i))) Ok((&[], RpcRequestCreds::Unknown(i)))
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct RpcGssApiIntegrity<'a> { pub struct RpcGssApiIntegrity<'a> {
pub seq_num: u32, pub seq_num: u32,
pub data: &'a [u8], pub data: &'a [u8],
@ -117,7 +117,7 @@ pub fn parse_rpc_gssapi_integrity(i: &[u8]) -> IResult<&[u8], RpcGssApiIntegrity
Ok((i, res)) Ok((i, res))
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct RpcPacketHeader { pub struct RpcPacketHeader {
pub frag_is_last: bool, pub frag_is_last: bool,
pub frag_len: u32, pub frag_len: u32,
@ -145,7 +145,7 @@ pub fn parse_rpc_packet_header(i: &[u8]) -> IResult<&[u8], RpcPacketHeader> {
Ok((i, hdr)) Ok((i, hdr))
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct RpcReplyPacket<'a> { pub struct RpcReplyPacket<'a> {
pub hdr: RpcPacketHeader, pub hdr: RpcPacketHeader,
@ -161,7 +161,7 @@ pub struct RpcReplyPacket<'a> {
} }
// top of request packet, just to get to procedure // top of request packet, just to get to procedure
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct RpcRequestPacketPartial { pub struct RpcRequestPacketPartial {
pub hdr: RpcPacketHeader, pub hdr: RpcPacketHeader,
@ -187,7 +187,7 @@ pub fn parse_rpc_request_partial(i: &[u8]) -> IResult<&[u8], RpcRequestPacketPar
Ok((i, req)) Ok((i, req))
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct RpcPacket<'a> { pub struct RpcPacket<'a> {
pub hdr: RpcPacketHeader, pub hdr: RpcPacketHeader,

@ -37,7 +37,7 @@ pub const PGSQL_DUMMY_PROTO_MAJOR: u16 = 1234; // 0x04d2
pub const PGSQL_DUMMY_PROTO_MINOR_SSL: u16 = 5679; //0x162f pub const PGSQL_DUMMY_PROTO_MINOR_SSL: u16 = 5679; //0x162f
pub const _PGSQL_DUMMY_PROTO_MINOR_GSSAPI: u16 = 5680; // 0x1630 pub const _PGSQL_DUMMY_PROTO_MINOR_GSSAPI: u16 = 5680; // 0x1630
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub enum PgsqlParameters { pub enum PgsqlParameters {
// startup parameters // startup parameters
User, User,
@ -113,27 +113,27 @@ impl From<&[u8]> for PgsqlParameters {
} }
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct PgsqlParameter { pub struct PgsqlParameter {
pub name: PgsqlParameters, pub name: PgsqlParameters,
pub value: Vec<u8>, pub value: Vec<u8>,
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct PgsqlStartupParameters { pub struct PgsqlStartupParameters {
pub user: PgsqlParameter, pub user: PgsqlParameter,
pub database: Option<PgsqlParameter>, pub database: Option<PgsqlParameter>,
pub optional_params: Option<Vec<PgsqlParameter>>, pub optional_params: Option<Vec<PgsqlParameter>>,
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct DummyStartupPacket { pub struct DummyStartupPacket {
length: u32, length: u32,
proto_major: u16, proto_major: u16,
proto_minor: u16, proto_minor: u16,
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct StartupPacket { pub struct StartupPacket {
pub length: u32, pub length: u32,
pub proto_major: u16, pub proto_major: u16,
@ -141,20 +141,20 @@ pub struct StartupPacket {
pub params: PgsqlStartupParameters, pub params: PgsqlStartupParameters,
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct RegularPacket { pub struct RegularPacket {
pub identifier: u8, pub identifier: u8,
pub length: u32, pub length: u32,
pub payload: Vec<u8>, pub payload: Vec<u8>,
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct PgsqlErrorNoticeMessageField { pub struct PgsqlErrorNoticeMessageField {
pub field_type: PgsqlErrorNoticeFieldType, pub field_type: PgsqlErrorNoticeFieldType,
pub field_value: Vec<u8>, pub field_value: Vec<u8>,
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct ErrorNoticeMessage { pub struct ErrorNoticeMessage {
pub identifier: u8, pub identifier: u8,
pub length: u32, pub length: u32,
@ -171,7 +171,7 @@ impl ErrorNoticeMessage {
} }
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub enum SSLResponseMessage { pub enum SSLResponseMessage {
SSLAccepted, SSLAccepted,
SSLRejected, SSLRejected,
@ -208,14 +208,14 @@ impl From<char> for SSLResponseMessage {
} }
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct ParameterStatusMessage { pub struct ParameterStatusMessage {
pub identifier: u8, pub identifier: u8,
pub length: u32, pub length: u32,
pub param: PgsqlParameter, pub param: PgsqlParameter,
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct BackendKeyDataMessage { pub struct BackendKeyDataMessage {
pub identifier: u8, pub identifier: u8,
pub length: u32, pub length: u32,
@ -223,7 +223,7 @@ pub struct BackendKeyDataMessage {
pub secret_key: u32, pub secret_key: u32,
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct ConsolidatedDataRowPacket { pub struct ConsolidatedDataRowPacket {
pub identifier: u8, pub identifier: u8,
pub length: u32, pub length: u32,
@ -231,14 +231,14 @@ pub struct ConsolidatedDataRowPacket {
pub data_size: u64, pub data_size: u64,
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct ReadyForQueryMessage { pub struct ReadyForQueryMessage {
pub identifier: u8, pub identifier: u8,
pub length: u32, pub length: u32,
pub transaction_status: u8, pub transaction_status: u8,
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct NotificationResponse { pub struct NotificationResponse {
pub identifier: u8, pub identifier: u8,
pub length: u32, pub length: u32,
@ -248,7 +248,7 @@ pub struct NotificationResponse {
pub payload: Vec<u8>, pub payload: Vec<u8>,
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub enum PgsqlBEMessage { pub enum PgsqlBEMessage {
SSLResponse(SSLResponseMessage), SSLResponse(SSLResponseMessage),
ErrorResponse(ErrorNoticeMessage), ErrorResponse(ErrorNoticeMessage),
@ -316,7 +316,7 @@ impl PgsqlBEMessage {
} }
} }
#[derive(Debug, PartialEq, Clone)] #[derive(Debug, PartialEq, Eq, Clone)]
pub enum SASLAuthenticationMechanism { pub enum SASLAuthenticationMechanism {
ScramSha256, ScramSha256,
ScramSha256Plus, ScramSha256Plus,
@ -332,13 +332,13 @@ impl SASLAuthenticationMechanism {
} }
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct TerminationMessage { pub struct TerminationMessage {
pub identifier: u8, pub identifier: u8,
pub length: u32, pub length: u32,
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub enum PgsqlFEMessage { pub enum PgsqlFEMessage {
SSLRequest(DummyStartupPacket), SSLRequest(DummyStartupPacket),
StartupMessage(StartupPacket), StartupMessage(StartupPacket),
@ -363,7 +363,7 @@ impl PgsqlFEMessage {
} }
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct AuthenticationMessage { pub struct AuthenticationMessage {
pub identifier: u8, pub identifier: u8,
pub length: u32, pub length: u32,
@ -371,7 +371,7 @@ pub struct AuthenticationMessage {
pub payload: Vec<u8>, pub payload: Vec<u8>,
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct SASLInitialResponsePacket { pub struct SASLInitialResponsePacket {
pub identifier: u8, pub identifier: u8,
pub length: u32, pub length: u32,
@ -380,7 +380,7 @@ pub struct SASLInitialResponsePacket {
pub sasl_param: Vec<u8>, pub sasl_param: Vec<u8>,
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct AuthenticationSASLMechanismMessage { pub struct AuthenticationSASLMechanismMessage {
identifier: u8, identifier: u8,
length: u32, length: u32,
@ -388,7 +388,7 @@ pub struct AuthenticationSASLMechanismMessage {
auth_mechanisms: Vec<SASLAuthenticationMechanism>, auth_mechanisms: Vec<SASLAuthenticationMechanism>,
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct RowField { pub struct RowField {
pub field_name: Vec<u8>, pub field_name: Vec<u8>,
pub table_oid: u32, pub table_oid: u32,
@ -402,7 +402,7 @@ pub struct RowField {
pub format_code: u16, pub format_code: u16,
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct RowDescriptionMessage { pub struct RowDescriptionMessage {
pub identifier: u8, pub identifier: u8,
pub length: u32, pub length: u32,
@ -410,14 +410,14 @@ pub struct RowDescriptionMessage {
pub fields: Vec<RowField>, pub fields: Vec<RowField>,
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct ColumnFieldValue { pub struct ColumnFieldValue {
// Can be 0, or -1 as a special NULL column value // Can be 0, or -1 as a special NULL column value
pub value_length: i32, pub value_length: i32,
pub value: Vec<u8>, pub value: Vec<u8>,
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub enum PgsqlErrorNoticeFieldType { pub enum PgsqlErrorNoticeFieldType {
SeverityLocalizable, SeverityLocalizable,
SeverityNonLocalizable, SeverityNonLocalizable,

@ -35,7 +35,7 @@ static mut ALPROTO_PGSQL: AppProto = ALPROTO_UNKNOWN;
static mut PGSQL_MAX_TX: usize = 1024; static mut PGSQL_MAX_TX: usize = 1024;
#[repr(u8)] #[repr(u8)]
#[derive(Copy, Clone, PartialOrd, PartialEq, Debug)] #[derive(Copy, Clone, PartialOrd, PartialEq, Eq, Debug)]
pub enum PgsqlTransactionState { pub enum PgsqlTransactionState {
Init = 0, Init = 0,
RequestReceived, RequestReceived,
@ -88,7 +88,7 @@ impl PgsqlTransaction {
} }
} }
#[derive(Clone, Copy, Debug, PartialEq)] #[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum PgsqlStateProgress { pub enum PgsqlStateProgress {
IdleState, IdleState,
SSLRequestReceived, SSLRequestReceived,

@ -21,7 +21,7 @@ use super::{
}; };
use md5::{Digest, Md5}; use md5::{Digest, Md5};
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct Cyu { pub struct Cyu {
pub string: String, pub string: String,
pub hash: String, pub hash: String,

@ -19,7 +19,7 @@ use nom7::error::{ErrorKind, ParseError};
use std::error::Error; use std::error::Error;
use std::fmt; use std::fmt;
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub enum QuicError { pub enum QuicError {
StreamTagNoMatch(u32), StreamTagNoMatch(u32),
InvalidPacket, InvalidPacket,

@ -196,7 +196,7 @@ fn parse_ack_frame(input: &[u8]) -> IResult<&[u8], Frame, QuicError> {
)) ))
} }
#[derive(Clone, Debug, PartialEq)] #[derive(Clone, Debug, PartialEq, Eq)]
pub struct QuicTlsExtension { pub struct QuicTlsExtension {
pub etype: TlsExtensionType, pub etype: TlsExtensionType,
pub values: Vec<Vec<u8>>, pub values: Vec<Vec<u8>>,

@ -78,7 +78,7 @@ impl From<u32> for QuicVersion {
} }
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub enum QuicType { pub enum QuicType {
Initial, Initial,
Retry, Retry,
@ -93,7 +93,7 @@ const QUIC_FLAG_DCID_LEN: u8 = 0x8;
const QUIC_FLAG_NONCE: u8 = 0x4; const QUIC_FLAG_NONCE: u8 = 0x4;
const QUIC_FLAG_VERSION: u8 = 0x1; const QUIC_FLAG_VERSION: u8 = 0x1;
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct PublicFlags { pub struct PublicFlags {
pub is_long: bool, pub is_long: bool,
pub raw: u8, pub raw: u8,
@ -161,7 +161,7 @@ pub fn quic_var_uint(input: &[u8]) -> IResult<&[u8], u64, QuicError> {
} }
/// A QUIC packet's header. /// A QUIC packet's header.
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct QuicHeader { pub struct QuicHeader {
pub flags: PublicFlags, pub flags: PublicFlags,
pub ty: QuicType, pub ty: QuicType,

@ -20,7 +20,7 @@
use nom7::error::{Error, ErrorKind, ParseError}; use nom7::error::{Error, ErrorKind, ParseError};
use nom7::ErrorConvert; use nom7::ErrorConvert;
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub enum RdpError { pub enum RdpError {
UnimplementedLengthDeterminant, UnimplementedLengthDeterminant,
NotX224Class0Error, NotX224Class0Error,

@ -72,19 +72,19 @@ fn device_scale_to_opt(x: u32) -> Option<u32> {
// ================ // ================
/// t.123-spec, section 8 /// t.123-spec, section 8
#[derive(Clone, Debug, PartialEq)] #[derive(Clone, Debug, PartialEq, Eq)]
pub enum TpktVersion { pub enum TpktVersion {
T123 = 0x3, T123 = 0x3,
} }
/// t.123-spec, section 8 /// t.123-spec, section 8
#[derive(Clone, Debug, PartialEq)] #[derive(Clone, Debug, PartialEq, Eq)]
pub struct T123Tpkt { pub struct T123Tpkt {
pub child: T123TpktChild, pub child: T123TpktChild,
} }
/// variants that a t.123 tpkt can hold /// variants that a t.123 tpkt can hold
#[derive(Clone, Debug, PartialEq)] #[derive(Clone, Debug, PartialEq, Eq)]
pub enum T123TpktChild { pub enum T123TpktChild {
X224ConnectionRequest(X224ConnectionRequest), X224ConnectionRequest(X224ConnectionRequest),
X224ConnectionConfirm(X224ConnectionConfirm), X224ConnectionConfirm(X224ConnectionConfirm),
@ -95,7 +95,7 @@ pub enum T123TpktChild {
// ================ // ================
/// x.224-spec, sections 13.3.3, 13.4.3, 13.7.3 /// x.224-spec, sections 13.3.3, 13.4.3, 13.7.3
#[derive(Clone, Debug, PartialEq)] #[derive(Clone, Debug, PartialEq, Eq)]
pub enum X224Type { pub enum X224Type {
ConnectionConfirm = 0xd, ConnectionConfirm = 0xd,
ConnectionRequest = 0xe, ConnectionRequest = 0xe,
@ -104,7 +104,7 @@ pub enum X224Type {
/// x.224-spec, section 13.3 /// x.224-spec, section 13.3
// rdp-spec, section 2.2.1.1 // rdp-spec, section 2.2.1.1
#[derive(Clone, Debug, PartialEq)] #[derive(Clone, Debug, PartialEq, Eq)]
pub struct X224ConnectionRequest { pub struct X224ConnectionRequest {
pub cdt: u8, pub cdt: u8,
pub dst_ref: u16, pub dst_ref: u16,
@ -117,13 +117,13 @@ pub struct X224ConnectionRequest {
} }
/// rdp-spec, section 2.2.1.1.1 /// rdp-spec, section 2.2.1.1.1
#[derive(Clone, Debug, PartialEq)] #[derive(Clone, Debug, PartialEq, Eq)]
pub struct RdpCookie { pub struct RdpCookie {
pub mstshash: String, pub mstshash: String,
} }
/// rdp-spec, sections 2.2.1.1.1, 2.2.1.2.1, 2.2.1.2.2 /// rdp-spec, sections 2.2.1.1.1, 2.2.1.2.1, 2.2.1.2.2
#[derive(Clone, Debug, PartialEq)] #[derive(Clone, Debug, PartialEq, Eq)]
pub enum X224ConnectionRequestType { pub enum X224ConnectionRequestType {
NegotiationRequest = 0x1, NegotiationRequest = 0x1,
NegotiationResponse = 0x2, NegotiationResponse = 0x2,
@ -131,7 +131,7 @@ pub enum X224ConnectionRequestType {
} }
/// rdp-spec, section 2.2.1.1.1 /// rdp-spec, section 2.2.1.1.1
#[derive(Clone, Debug, PartialEq)] #[derive(Clone, Debug, PartialEq, Eq)]
pub struct NegotiationRequest { pub struct NegotiationRequest {
pub flags: NegotiationRequestFlags, pub flags: NegotiationRequestFlags,
pub protocols: ProtocolFlags, pub protocols: ProtocolFlags,
@ -148,7 +148,7 @@ bitflags! {
} }
/// rdp-spec, section 2.2.1.1.1 /// rdp-spec, section 2.2.1.1.1
#[derive(Clone, Debug, FromPrimitive, PartialEq)] #[derive(Clone, Debug, FromPrimitive, PartialEq, Eq)]
pub enum Protocol { pub enum Protocol {
ProtocolRdp = 0x0, ProtocolRdp = 0x0,
ProtocolSsl = 0x1, ProtocolSsl = 0x1,
@ -170,7 +170,7 @@ bitflags! {
/// rdp-spec, section 2.2.1.2 /// rdp-spec, section 2.2.1.2
/// x.224-spec, section 13.3 /// x.224-spec, section 13.3
#[derive(Clone, Debug, PartialEq)] #[derive(Clone, Debug, PartialEq, Eq)]
pub struct X224ConnectionConfirm { pub struct X224ConnectionConfirm {
pub cdt: u8, pub cdt: u8,
pub dst_ref: u16, pub dst_ref: u16,
@ -181,14 +181,14 @@ pub struct X224ConnectionConfirm {
} }
/// variants of a server negotiation /// variants of a server negotiation
#[derive(Clone, Debug, PartialEq)] #[derive(Clone, Debug, PartialEq, Eq)]
pub enum NegotiationFromServer { pub enum NegotiationFromServer {
Response(NegotiationResponse), Response(NegotiationResponse),
Failure(NegotiationFailure), Failure(NegotiationFailure),
} }
/// rdp-spec, section 2.2.1.1.1 /// rdp-spec, section 2.2.1.1.1
#[derive(Clone, Debug, PartialEq)] #[derive(Clone, Debug, PartialEq, Eq)]
pub struct NegotiationResponse { pub struct NegotiationResponse {
pub flags: NegotiationResponseFlags, pub flags: NegotiationResponseFlags,
pub protocol: Protocol, pub protocol: Protocol,
@ -207,13 +207,13 @@ bitflags! {
} }
/// rdp-spec, section 2.2.1.1.1 /// rdp-spec, section 2.2.1.1.1
#[derive(Clone, Debug, PartialEq)] #[derive(Clone, Debug, PartialEq, Eq)]
pub struct NegotiationFailure { pub struct NegotiationFailure {
pub code: NegotiationFailureCode, pub code: NegotiationFailureCode,
} }
/// rdp-spec, section 2.2.1.2.2 /// rdp-spec, section 2.2.1.2.2
#[derive(Clone, Debug, FromPrimitive, PartialEq)] #[derive(Clone, Debug, FromPrimitive, PartialEq, Eq)]
pub enum NegotiationFailureCode { pub enum NegotiationFailureCode {
SslRequiredByServer = 0x1, SslRequiredByServer = 0x1,
SslNotAllowedByServer = 0x2, SslNotAllowedByServer = 0x2,
@ -226,13 +226,13 @@ pub enum NegotiationFailureCode {
// ================ // ================
/// x224-spec, section 13.7 /// x224-spec, section 13.7
#[derive(Clone, Debug, PartialEq)] #[derive(Clone, Debug, PartialEq, Eq)]
pub struct X223Data { pub struct X223Data {
pub child: X223DataChild, pub child: X223DataChild,
} }
/// variants that an x.223 data message can hold /// variants that an x.223 data message can hold
#[derive(Clone, Debug, PartialEq)] #[derive(Clone, Debug, PartialEq, Eq)]
pub enum X223DataChild { pub enum X223DataChild {
McsConnectRequest(McsConnectRequest), McsConnectRequest(McsConnectRequest),
McsConnectResponse(McsConnectResponse), McsConnectResponse(McsConnectResponse),
@ -240,20 +240,20 @@ pub enum X223DataChild {
} }
/// t.125-spec, section 7, part 2 /// t.125-spec, section 7, part 2
#[derive(Clone, Debug, PartialEq)] #[derive(Clone, Debug, PartialEq, Eq)]
pub enum T125Type { pub enum T125Type {
T125TypeMcsConnectRequest = 0x65, // 101 T125TypeMcsConnectRequest = 0x65, // 101
T125TypeMcsConnectResponse = 0x66, // 102 T125TypeMcsConnectResponse = 0x66, // 102
} }
/// rdp-spec, section 2.2.1.3.2 /// rdp-spec, section 2.2.1.3.2
#[derive(Clone, Debug, PartialEq)] #[derive(Clone, Debug, PartialEq, Eq)]
pub struct McsConnectRequest { pub struct McsConnectRequest {
pub children: Vec<McsConnectRequestChild>, pub children: Vec<McsConnectRequestChild>,
} }
/// variants that an mcs connection message can hold /// variants that an mcs connection message can hold
#[derive(Clone, Debug, PartialEq)] #[derive(Clone, Debug, PartialEq, Eq)]
pub enum McsConnectRequestChild { pub enum McsConnectRequestChild {
CsClientCore(CsClientCoreData), CsClientCore(CsClientCoreData),
CsNet(CsNet), CsNet(CsNet),
@ -261,14 +261,14 @@ pub enum McsConnectRequestChild {
} }
/// rdp-spec, section 2.2.1.3.1 /// rdp-spec, section 2.2.1.3.1
#[derive(Clone, Debug, FromPrimitive, PartialEq)] #[derive(Clone, Debug, FromPrimitive, PartialEq, Eq)]
pub enum CsType { pub enum CsType {
Core = 0xc001, Core = 0xc001,
Net = 0xc003, Net = 0xc003,
} }
/// rdp-spec, section 2.2.1.3.2 /// rdp-spec, section 2.2.1.3.2
#[derive(Clone, Debug, PartialEq)] #[derive(Clone, Debug, PartialEq, Eq)]
pub struct CsClientCoreData { pub struct CsClientCoreData {
pub version: Option<RdpClientVersion>, pub version: Option<RdpClientVersion>,
pub desktop_width: u16, pub desktop_width: u16,
@ -300,7 +300,7 @@ pub struct CsClientCoreData {
} }
/// rdp-spec, section 2.2.1.3.2 Client Core Data /// rdp-spec, section 2.2.1.3.2 Client Core Data
#[derive(Clone, Debug, FromPrimitive, PartialEq)] #[derive(Clone, Debug, FromPrimitive, PartialEq, Eq)]
#[allow(non_camel_case_types)] #[allow(non_camel_case_types)]
pub enum RdpClientVersion { pub enum RdpClientVersion {
V4 = 0x80001, V4 = 0x80001,
@ -316,14 +316,14 @@ pub enum RdpClientVersion {
} }
/// rdp-spec, section 2.2.1.3.2 Client Core Data /// rdp-spec, section 2.2.1.3.2 Client Core Data
#[derive(Clone, Debug, FromPrimitive, PartialEq)] #[derive(Clone, Debug, FromPrimitive, PartialEq, Eq)]
pub enum ColorDepth { pub enum ColorDepth {
RnsUdColor4Bpp = 0xca00, RnsUdColor4Bpp = 0xca00,
RnsUdColor8Bpp = 0xca01, RnsUdColor8Bpp = 0xca01,
} }
/// rdp-spec, section 2.2.1.3.2 Client Core Data /// rdp-spec, section 2.2.1.3.2 Client Core Data
#[derive(Clone, Debug, FromPrimitive, PartialEq)] #[derive(Clone, Debug, FromPrimitive, PartialEq, Eq)]
pub enum SasSequence { pub enum SasSequence {
RnsUdSasDel = 0xaa03, RnsUdSasDel = 0xaa03,
} }
@ -331,7 +331,7 @@ pub enum SasSequence {
// for keyboard layout, see windows::lcid_to_string // for keyboard layout, see windows::lcid_to_string
/// rdp-spec, section 2.2.1.3.2 Client Core Data /// rdp-spec, section 2.2.1.3.2 Client Core Data
#[derive(Clone, Debug, FromPrimitive, PartialEq)] #[derive(Clone, Debug, FromPrimitive, PartialEq, Eq)]
pub enum KeyboardType { pub enum KeyboardType {
KbXt = 0x1, KbXt = 0x1,
KbIco = 0x2, KbIco = 0x2,
@ -343,7 +343,7 @@ pub enum KeyboardType {
} }
/// rdp-spec, section 2.2.1.3.2 Client Core Data /// rdp-spec, section 2.2.1.3.2 Client Core Data
#[derive(Clone, Debug, FromPrimitive, PartialEq)] #[derive(Clone, Debug, FromPrimitive, PartialEq, Eq)]
pub enum PostBeta2ColorDepth { pub enum PostBeta2ColorDepth {
RnsUdColorNotProvided = 0x0, RnsUdColorNotProvided = 0x0,
RnsUdColor4Bpp = 0xca00, RnsUdColor4Bpp = 0xca00,
@ -354,7 +354,7 @@ pub enum PostBeta2ColorDepth {
} }
/// rdp-spec, section 2.2.1.3.2 Client Core Data /// rdp-spec, section 2.2.1.3.2 Client Core Data
#[derive(Clone, Debug, FromPrimitive, PartialEq)] #[derive(Clone, Debug, FromPrimitive, PartialEq, Eq)]
pub enum HighColorDepth { pub enum HighColorDepth {
HighColorNotProvided = 0x0, HighColorNotProvided = 0x0,
HighColor4Bpp = 0x4, HighColor4Bpp = 0x4,
@ -394,7 +394,7 @@ bitflags! {
} }
/// rdp-spec, section 2.2.1.3.2 Client Core Data, `connectionType` /// rdp-spec, section 2.2.1.3.2 Client Core Data, `connectionType`
#[derive(Clone, Debug, FromPrimitive, PartialEq)] #[derive(Clone, Debug, FromPrimitive, PartialEq, Eq)]
pub enum ConnectionHint { pub enum ConnectionHint {
ConnectionHintNotProvided = 0x0, ConnectionHintNotProvided = 0x0,
ConnectionHintModem = 0x1, ConnectionHintModem = 0x1,
@ -407,7 +407,7 @@ pub enum ConnectionHint {
} }
/// rdp-spec, section 2.2.1.3.2 Client Core Data /// rdp-spec, section 2.2.1.3.2 Client Core Data
#[derive(Clone, Copy, Debug, FromPrimitive, PartialEq)] #[derive(Clone, Copy, Debug, FromPrimitive, PartialEq, Eq)]
pub enum DesktopOrientation { pub enum DesktopOrientation {
OrientationLandscape = 0, OrientationLandscape = 0,
OrientationPortrait = 90, // 0x5a OrientationPortrait = 90, // 0x5a
@ -416,21 +416,21 @@ pub enum DesktopOrientation {
} }
/// rdp-spec, section 2.2.1.3.4 /// rdp-spec, section 2.2.1.3.4
#[derive(Clone, Debug, PartialEq)] #[derive(Clone, Debug, PartialEq, Eq)]
pub struct CsNet { pub struct CsNet {
pub channels: Vec<String>, pub channels: Vec<String>,
} }
/// generic structure /// generic structure
/// cf. rdp-spec, section 2.2.1.3.4 /// cf. rdp-spec, section 2.2.1.3.4
#[derive(Clone, Debug, PartialEq)] #[derive(Clone, Debug, PartialEq, Eq)]
pub struct CsUnknown { pub struct CsUnknown {
pub typ: u16, pub typ: u16,
pub data: Vec<u8>, pub data: Vec<u8>,
} }
/// rdp-spec, section 2.2.1.4 /// rdp-spec, section 2.2.1.4
#[derive(Clone, Debug, PartialEq)] #[derive(Clone, Debug, PartialEq, Eq)]
pub struct McsConnectResponse {} pub struct McsConnectResponse {}
// ================== // ==================

@ -33,12 +33,12 @@ static mut ALPROTO_RDP: AppProto = ALPROTO_UNKNOWN;
// transactions // transactions
// //
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct CertificateBlob { pub struct CertificateBlob {
pub data: Vec<u8>, pub data: Vec<u8>,
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub enum RdpTransactionItem { pub enum RdpTransactionItem {
X224ConnectionRequest(X224ConnectionRequest), X224ConnectionRequest(X224ConnectionRequest),
X224ConnectionConfirm(X224ConnectionConfirm), X224ConnectionConfirm(X224ConnectionConfirm),
@ -47,7 +47,7 @@ pub enum RdpTransactionItem {
TlsCertificateChain(Vec<CertificateBlob>), TlsCertificateChain(Vec<CertificateBlob>),
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct RdpTransaction { pub struct RdpTransaction {
pub id: u64, pub id: u64,
pub item: RdpTransactionItem, pub item: RdpTransactionItem,
@ -105,7 +105,7 @@ pub extern "C" fn rs_rdp_tx_get_progress(
// state // state
// //
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct RdpState { pub struct RdpState {
state_data: AppLayerStateData, state_data: AppLayerStateData,
next_id: u64, next_id: u64,

@ -476,14 +476,14 @@ pub fn lcid_to_string<'a>(lcid: u32, default: &'a str) -> String {
} }
/// Windows operating system type (build and suffix/pack) /// Windows operating system type (build and suffix/pack)
#[derive(Clone, Debug, PartialEq)] #[derive(Clone, Debug, PartialEq, Eq)]
pub struct OperatingSystem { pub struct OperatingSystem {
pub build: Build, pub build: Build,
pub suffix: Suffix, pub suffix: Suffix,
} }
// <https://en.wikipedia.org/wiki/Windows_NT#Releases> // <https://en.wikipedia.org/wiki/Windows_NT#Releases>
#[derive(Clone, Debug, FromPrimitive, PartialEq)] #[derive(Clone, Debug, FromPrimitive, PartialEq, Eq)]
#[allow(non_camel_case_types)] #[allow(non_camel_case_types)]
pub enum Build { pub enum Build {
Other, Other,
@ -510,7 +510,7 @@ pub enum Build {
Server2003 = 3790, Server2003 = 3790,
} }
#[derive(Clone, Debug, PartialEq)] #[derive(Clone, Debug, PartialEq, Eq)]
pub enum Suffix { pub enum Suffix {
Empty, Empty,
Rtm, Rtm,

@ -57,7 +57,7 @@ pub struct Response {
pub body_len: u16, pub body_len: u16,
} }
#[derive(PartialEq, Debug, Clone)] #[derive(PartialEq, Eq, Debug, Clone)]
pub enum Method { pub enum Method {
Register, Register,
Custom(String), Custom(String),

@ -148,7 +148,7 @@ fn parse_secblob_spnego(blob: &[u8]) -> Option<SpnegoRequest>
Some(s) Some(s)
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct NtlmsspData { pub struct NtlmsspData {
pub host: Vec<u8>, pub host: Vec<u8>,
pub user: Vec<u8>, pub user: Vec<u8>,

@ -26,7 +26,7 @@ use nom7::number::streaming::{be_u16, le_u8, le_u16, le_u32, u16, u32};
use nom7::sequence::tuple; use nom7::sequence::tuple;
use nom7::{Err, IResult}; use nom7::{Err, IResult};
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct DceRpcResponseRecord<'a> { pub struct DceRpcResponseRecord<'a> {
pub data: &'a[u8], pub data: &'a[u8],
} }
@ -45,7 +45,7 @@ pub fn parse_dcerpc_response_record(i:&[u8], frag_len: u16 )
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct DceRpcRequestRecord<'a> { pub struct DceRpcRequestRecord<'a> {
pub opnum: u16, pub opnum: u16,
pub context_id: u16, pub context_id: u16,
@ -69,7 +69,7 @@ pub fn parse_dcerpc_request_record(i:&[u8], frag_len: u16, little: bool)
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct DceRpcBindIface<'a> { pub struct DceRpcBindIface<'a> {
pub iface: &'a[u8], pub iface: &'a[u8],
pub ver: u16, pub ver: u16,
@ -108,7 +108,7 @@ pub fn parse_dcerpc_bind_iface_big(i: &[u8]) -> IResult<&[u8], DceRpcBindIface>
Ok((i, res)) Ok((i, res))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct DceRpcBindRecord<'a> { pub struct DceRpcBindRecord<'a> {
pub num_ctx_items: u8, pub num_ctx_items: u8,
pub ifaces: Vec<DceRpcBindIface<'a>>, pub ifaces: Vec<DceRpcBindIface<'a>>,
@ -142,7 +142,7 @@ pub fn parse_dcerpc_bind_record_big(i: &[u8]) -> IResult<&[u8], DceRpcBindRecord
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct DceRpcBindAckResult<'a> { pub struct DceRpcBindAckResult<'a> {
pub ack_result: u16, pub ack_result: u16,
pub ack_reason: u16, pub ack_reason: u16,
@ -164,7 +164,7 @@ pub fn parse_dcerpc_bindack_result(i: &[u8]) -> IResult<&[u8], DceRpcBindAckResu
Ok((i, res)) Ok((i, res))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct DceRpcBindAckRecord<'a> { pub struct DceRpcBindAckRecord<'a> {
pub num_results: u8, pub num_results: u8,
pub results: Vec<DceRpcBindAckResult<'a>>, pub results: Vec<DceRpcBindAckResult<'a>>,
@ -187,7 +187,7 @@ pub fn parse_dcerpc_bindack_record(i: &[u8]) -> IResult<&[u8], DceRpcBindAckReco
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct DceRpcRecord<'a> { pub struct DceRpcRecord<'a> {
pub version_major: u8, pub version_major: u8,
pub version_minor: u8, pub version_minor: u8,

@ -27,7 +27,7 @@ pub const NBSS_MSGTYPE_NEGATIVE_SSN_RESPONSE: u8 = 0x83;
pub const NBSS_MSGTYPE_RETARG_RESPONSE: u8 = 0x84; pub const NBSS_MSGTYPE_RETARG_RESPONSE: u8 = 0x84;
pub const NBSS_MSGTYPE_KEEP_ALIVE: u8 = 0x85; pub const NBSS_MSGTYPE_KEEP_ALIVE: u8 = 0x85;
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct NbssRecord<'a> { pub struct NbssRecord<'a> {
pub message_type: u8, pub message_type: u8,
pub length: u32, pub length: u32,

@ -24,7 +24,7 @@ use nom7::number::streaming::{le_u8, le_u16, le_u32};
use nom7::sequence::tuple; use nom7::sequence::tuple;
use nom7::IResult; use nom7::IResult;
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct NTLMSSPVersion { pub struct NTLMSSPVersion {
pub ver_major: u8, pub ver_major: u8,
pub ver_minor: u8, pub ver_minor: u8,
@ -55,7 +55,7 @@ fn parse_ntlm_auth_version(i: &[u8]) -> IResult<&[u8], NTLMSSPVersion> {
Ok((i, version)) Ok((i, version))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct NTLMSSPAuthRecord<'a> { pub struct NTLMSSPAuthRecord<'a> {
pub domain: &'a[u8], pub domain: &'a[u8],
pub user: &'a[u8], pub user: &'a[u8],
@ -121,7 +121,7 @@ pub fn parse_ntlm_auth_record(i: &[u8]) -> IResult<&[u8], NTLMSSPAuthRecord> {
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct NTLMSSPRecord<'a> { pub struct NTLMSSPRecord<'a> {
pub msg_type: u32, pub msg_type: u32,
pub data: &'a[u8], pub data: &'a[u8],

@ -46,7 +46,7 @@ pub fn smb1_get_string<'a>(i: &'a[u8], r: &SmbRecord, offset: usize) -> IResult<
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct SmbParamBlockAndXHeader { pub struct SmbParamBlockAndXHeader {
pub wct: u8, pub wct: u8,
pub andx_command: u8, pub andx_command: u8,
@ -66,7 +66,7 @@ pub fn smb1_parse_andx_header(i: &[u8]) -> IResult<&[u8], SmbParamBlockAndXHeade
Ok((i, hdr)) Ok((i, hdr))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Smb1WriteRequestRecord<'a> { pub struct Smb1WriteRequestRecord<'a> {
pub offset: u64, pub offset: u64,
pub len: u32, pub len: u32,
@ -140,7 +140,7 @@ pub fn parse_smb1_write_and_close_request_record(i: &[u8]) -> IResult<&[u8], Smb
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Smb1NegotiateProtocolResponseRecord<'a> { pub struct Smb1NegotiateProtocolResponseRecord<'a> {
pub dialect_idx: u16, pub dialect_idx: u16,
pub server_guid: &'a[u8], pub server_guid: &'a[u8],
@ -185,7 +185,7 @@ pub fn parse_smb1_negotiate_protocol_response_record(i: &[u8])
} }
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Smb1NegotiateProtocolRecord<'a> { pub struct Smb1NegotiateProtocolRecord<'a> {
pub dialects: Vec<&'a [u8]>, pub dialects: Vec<&'a [u8]>,
} }
@ -201,7 +201,7 @@ pub fn parse_smb1_negotiate_protocol_record(i: &[u8])
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Smb1ResponseRecordTreeConnectAndX<'a> { pub struct Smb1ResponseRecordTreeConnectAndX<'a> {
pub service: &'a[u8], pub service: &'a[u8],
pub nativefs: &'a[u8], pub nativefs: &'a[u8],
@ -225,7 +225,7 @@ pub fn parse_smb_connect_tree_andx_response_record(i: &[u8])
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct SmbRecordTreeConnectAndX<'a> { pub struct SmbRecordTreeConnectAndX<'a> {
pub path: Vec<u8>, pub path: Vec<u8>,
pub service: &'a[u8], pub service: &'a[u8],
@ -246,7 +246,7 @@ pub fn parse_smb_connect_tree_andx_record<'a>(i: &'a[u8], r: &SmbRecord)
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct SmbRecordTransRequest<'a> { pub struct SmbRecordTransRequest<'a> {
pub params: SmbRecordTransRequestParams, pub params: SmbRecordTransRequestParams,
pub pipe: Option<SmbPipeProtocolRecord<'a>>, pub pipe: Option<SmbPipeProtocolRecord<'a>>,
@ -254,7 +254,7 @@ pub struct SmbRecordTransRequest<'a> {
pub data: SmbRecordTransRequestData<'a>, pub data: SmbRecordTransRequestData<'a>,
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct SmbPipeProtocolRecord<'a> { pub struct SmbPipeProtocolRecord<'a> {
pub function: u16, pub function: u16,
pub fid: &'a[u8], pub fid: &'a[u8],
@ -272,7 +272,7 @@ pub fn parse_smb_trans_request_record_pipe(i: &[u8])
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct SmbRecordTransRequestParams<> { pub struct SmbRecordTransRequestParams<> {
pub max_data_cnt: u16, pub max_data_cnt: u16,
param_cnt: u16, param_cnt: u16,
@ -314,7 +314,7 @@ pub fn parse_smb_trans_request_record_params(i: &[u8])
Ok((i, (params, pipe))) Ok((i, (params, pipe)))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct SmbRecordTransRequestData<'a> { pub struct SmbRecordTransRequestData<'a> {
pub data: &'a[u8], pub data: &'a[u8],
} }
@ -382,7 +382,7 @@ pub fn parse_smb_trans_request_record<'a, 'b>(i: &'a[u8], r: &SmbRecord<'b>)
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct SmbRecordTransResponse<'a> { pub struct SmbRecordTransResponse<'a> {
pub data_cnt: u16, pub data_cnt: u16,
pub bcc: u16, pub bcc: u16,
@ -436,7 +436,7 @@ pub fn parse_smb_trans_response_record(i: &[u8]) -> IResult<&[u8], SmbRecordTran
} }
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct SmbRecordSetupAndX<'a> { pub struct SmbRecordSetupAndX<'a> {
pub sec_blob: &'a[u8], pub sec_blob: &'a[u8],
} }
@ -451,7 +451,7 @@ pub fn parse_smb_setup_andx_record(i: &[u8]) -> IResult<&[u8], SmbRecordSetupAnd
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct SmbResponseRecordSetupAndX<'a> { pub struct SmbResponseRecordSetupAndX<'a> {
pub sec_blob: &'a[u8], pub sec_blob: &'a[u8],
} }
@ -492,7 +492,7 @@ pub fn parse_smb_response_setup_andx_record(i: &[u8]) -> IResult<&[u8], SmbRespo
} }
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct SmbRequestReadAndXRecord<'a> { pub struct SmbRequestReadAndXRecord<'a> {
pub fid: &'a[u8], pub fid: &'a[u8],
pub size: u64, pub size: u64,
@ -519,7 +519,7 @@ pub fn parse_smb_read_andx_request_record(i: &[u8]) -> IResult<&[u8], SmbRequest
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct SmbResponseReadAndXRecord<'a> { pub struct SmbResponseReadAndXRecord<'a> {
pub len: u32, pub len: u32,
pub data: &'a[u8], pub data: &'a[u8],
@ -553,7 +553,7 @@ pub fn parse_smb_read_andx_response_record(i: &[u8]) -> IResult<&[u8], SmbRespon
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct SmbRequestRenameRecord { pub struct SmbRequestRenameRecord {
pub oldname: Vec<u8>, pub oldname: Vec<u8>,
pub newname: Vec<u8>, pub newname: Vec<u8>,
@ -574,7 +574,7 @@ pub fn parse_smb_rename_request_record(i: &[u8]) -> IResult<&[u8], SmbRequestRen
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct SmbRequestCreateAndXRecord<> { pub struct SmbRequestCreateAndXRecord<> {
pub disposition: u32, pub disposition: u32,
pub create_options: u32, pub create_options: u32,
@ -604,7 +604,7 @@ pub fn parse_smb_create_andx_request_record<'a>(i: &'a[u8], r: &SmbRecord)
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Trans2RecordParamSetFileInfoDisposition<> { pub struct Trans2RecordParamSetFileInfoDisposition<> {
pub delete: bool, pub delete: bool,
} }
@ -618,7 +618,7 @@ pub fn parse_trans2_request_data_set_file_info_disposition(i: &[u8])
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Trans2RecordParamSetFileInfo<'a> { pub struct Trans2RecordParamSetFileInfo<'a> {
pub fid: &'a[u8], pub fid: &'a[u8],
pub loi: u16, pub loi: u16,
@ -631,7 +631,7 @@ pub fn parse_trans2_request_params_set_file_info(i: &[u8]) -> IResult<&[u8], Tra
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Trans2RecordParamSetFileInfoRename<'a> { pub struct Trans2RecordParamSetFileInfoRename<'a> {
pub replace: bool, pub replace: bool,
pub newname: &'a[u8], pub newname: &'a[u8],
@ -650,7 +650,7 @@ pub fn parse_trans2_request_data_set_file_info_rename(i: &[u8]) -> IResult<&[u8]
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Trans2RecordParamSetPathInfo<> { pub struct Trans2RecordParamSetPathInfo<> {
pub loi: u16, pub loi: u16,
pub oldname: Vec<u8>, pub oldname: Vec<u8>,
@ -664,7 +664,7 @@ pub fn parse_trans2_request_params_set_path_info(i: &[u8]) -> IResult<&[u8], Tra
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Trans2RecordParamSetPathInfoRename<'a> { pub struct Trans2RecordParamSetPathInfoRename<'a> {
pub replace: bool, pub replace: bool,
pub newname: &'a[u8], pub newname: &'a[u8],
@ -683,7 +683,7 @@ pub fn parse_trans2_request_data_set_path_info_rename(i: &[u8]) -> IResult<&[u8]
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct SmbRequestTrans2Record<'a> { pub struct SmbRequestTrans2Record<'a> {
pub subcmd: u16, pub subcmd: u16,
pub setup_blob: &'a[u8], pub setup_blob: &'a[u8],
@ -726,7 +726,7 @@ pub fn parse_smb_trans2_request_record(i: &[u8]) -> IResult<&[u8], SmbRequestTra
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct SmbResponseCreateAndXRecord<'a> { pub struct SmbResponseCreateAndXRecord<'a> {
pub fid: &'a[u8], pub fid: &'a[u8],
pub create_ts: SMBFiletime, pub create_ts: SMBFiletime,
@ -767,7 +767,7 @@ pub fn parse_smb_create_andx_response_record(i: &[u8]) -> IResult<&[u8], SmbResp
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct SmbRequestCloseRecord<'a> { pub struct SmbRequestCloseRecord<'a> {
pub fid: &'a[u8], pub fid: &'a[u8],
} }
@ -781,7 +781,7 @@ pub fn parse_smb1_close_request_record(i: &[u8]) -> IResult<&[u8], SmbRequestClo
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct SmbVersion<> { pub struct SmbVersion<> {
pub version: u8, pub version: u8,
} }
@ -793,7 +793,7 @@ pub fn parse_smb_version(i: &[u8]) -> IResult<&[u8], SmbVersion> {
Ok((i, version)) Ok((i, version))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct SmbRecord<'a> { pub struct SmbRecord<'a> {
pub command: u8, pub command: u8,
pub is_dos_error: bool, pub is_dos_error: bool,

@ -27,7 +27,7 @@ use nom7::{Err, IResult, Needed};
const SMB2_FLAGS_SERVER_TO_REDIR: u32 = 0x0000_0001; const SMB2_FLAGS_SERVER_TO_REDIR: u32 = 0x0000_0001;
const SMB2_FLAGS_ASYNC_COMMAND: u32 = 0x0000_0002; const SMB2_FLAGS_ASYNC_COMMAND: u32 = 0x0000_0002;
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Smb2SecBlobRecord<'a> { pub struct Smb2SecBlobRecord<'a> {
pub data: &'a[u8], pub data: &'a[u8],
} }
@ -37,7 +37,7 @@ pub fn parse_smb2_sec_blob(i: &[u8]) -> IResult<&[u8], Smb2SecBlobRecord> {
Ok((i, Smb2SecBlobRecord { data })) Ok((i, Smb2SecBlobRecord { data }))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Smb2RecordDir<> { pub struct Smb2RecordDir<> {
pub request: bool, pub request: bool,
} }
@ -52,7 +52,7 @@ pub fn parse_smb2_record_direction(i: &[u8]) -> IResult<&[u8], Smb2RecordDir> {
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Smb2Record<'a> { pub struct Smb2Record<'a> {
pub direction: u8, // 0 req, 1 res pub direction: u8, // 0 req, 1 res
pub header_len: u16, pub header_len: u16,
@ -129,7 +129,7 @@ pub fn parse_smb2_request_record(i: &[u8]) -> IResult<&[u8], Smb2Record> {
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Smb2NegotiateProtocolRequestRecord<'a> { pub struct Smb2NegotiateProtocolRequestRecord<'a> {
pub dialects_vec: Vec<u16>, pub dialects_vec: Vec<u16>,
pub client_guid: &'a[u8], pub client_guid: &'a[u8],
@ -153,7 +153,7 @@ pub fn parse_smb2_request_negotiate_protocol(i: &[u8]) -> IResult<&[u8], Smb2Neg
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Smb2NegotiateProtocolResponseRecord<'a> { pub struct Smb2NegotiateProtocolResponseRecord<'a> {
pub dialect: u16, pub dialect: u16,
pub server_guid: &'a[u8], pub server_guid: &'a[u8],
@ -196,7 +196,7 @@ pub fn parse_smb2_response_negotiate_protocol_error(i: &[u8]) -> IResult<&[u8],
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Smb2SessionSetupRequestRecord<'a> { pub struct Smb2SessionSetupRequestRecord<'a> {
pub data: &'a[u8], pub data: &'a[u8],
} }
@ -215,7 +215,7 @@ pub fn parse_smb2_request_session_setup(i: &[u8]) -> IResult<&[u8], Smb2SessionS
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Smb2TreeConnectRequestRecord<'a> { pub struct Smb2TreeConnectRequestRecord<'a> {
pub share_name: &'a[u8], pub share_name: &'a[u8],
} }
@ -230,7 +230,7 @@ pub fn parse_smb2_request_tree_connect(i: &[u8]) -> IResult<&[u8], Smb2TreeConne
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Smb2TreeConnectResponseRecord<> { pub struct Smb2TreeConnectResponseRecord<> {
pub share_type: u8, pub share_type: u8,
} }
@ -245,7 +245,7 @@ pub fn parse_smb2_response_tree_connect(i: &[u8]) -> IResult<&[u8], Smb2TreeConn
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Smb2CreateRequestRecord<'a> { pub struct Smb2CreateRequestRecord<'a> {
pub disposition: u32, pub disposition: u32,
pub create_options: u32, pub create_options: u32,
@ -269,7 +269,7 @@ pub fn parse_smb2_request_create(i: &[u8]) -> IResult<&[u8], Smb2CreateRequestRe
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Smb2IOCtlRequestRecord<'a> { pub struct Smb2IOCtlRequestRecord<'a> {
pub is_pipe: bool, pub is_pipe: bool,
pub function: u32, pub function: u32,
@ -298,7 +298,7 @@ pub fn parse_smb2_request_ioctl(i: &[u8]) -> IResult<&[u8], Smb2IOCtlRequestReco
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Smb2IOCtlResponseRecord<'a> { pub struct Smb2IOCtlResponseRecord<'a> {
pub is_pipe: bool, pub is_pipe: bool,
pub guid: &'a[u8], pub guid: &'a[u8],
@ -333,7 +333,7 @@ pub fn parse_smb2_response_ioctl(i: &[u8]) -> IResult<&[u8], Smb2IOCtlResponseRe
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Smb2CloseRequestRecord<'a> { pub struct Smb2CloseRequestRecord<'a> {
pub guid: &'a[u8], pub guid: &'a[u8],
} }
@ -428,7 +428,7 @@ pub fn parse_smb2_request_setinfo(i: &[u8]) -> IResult<&[u8], Smb2SetInfoRequest
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Smb2WriteRequestRecord<'a> { pub struct Smb2WriteRequestRecord<'a> {
pub wr_len: u32, pub wr_len: u32,
pub wr_offset: u64, pub wr_offset: u64,
@ -456,7 +456,7 @@ pub fn parse_smb2_request_write(i: &[u8]) -> IResult<&[u8], Smb2WriteRequestReco
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Smb2ReadRequestRecord<'a> { pub struct Smb2ReadRequestRecord<'a> {
pub rd_len: u32, pub rd_len: u32,
pub rd_offset: u64, pub rd_offset: u64,
@ -480,7 +480,7 @@ pub fn parse_smb2_request_read(i: &[u8]) -> IResult<&[u8], Smb2ReadRequestRecord
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Smb2ReadResponseRecord<'a> { pub struct Smb2ReadResponseRecord<'a> {
pub len: u32, pub len: u32,
pub data: &'a[u8], pub data: &'a[u8],
@ -514,7 +514,7 @@ pub fn parse_smb2_response_read(i: &[u8]) -> IResult<&[u8], Smb2ReadResponseReco
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Smb2CreateResponseRecord<'a> { pub struct Smb2CreateResponseRecord<'a> {
pub guid: &'a[u8], pub guid: &'a[u8],
pub create_ts: SMBFiletime, pub create_ts: SMBFiletime,
@ -550,7 +550,7 @@ pub fn parse_smb2_response_create(i: &[u8]) -> IResult<&[u8], Smb2CreateResponse
Ok((i, record)) Ok((i, record))
} }
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Smb2WriteResponseRecord<> { pub struct Smb2WriteResponseRecord<> {
pub wr_cnt: u32, pub wr_cnt: u32,
} }

@ -19,7 +19,7 @@ use nom7::bytes::streaming::{tag, take};
use nom7::number::streaming::{le_u16, le_u32, le_u64}; use nom7::number::streaming::{le_u16, le_u32, le_u64};
use nom7::IResult; use nom7::IResult;
#[derive(Debug,PartialEq)] #[derive(Debug,PartialEq, Eq)]
pub struct Smb3TransformRecord<'a> { pub struct Smb3TransformRecord<'a> {
pub session_id: u64, pub session_id: u64,
pub enc_algo: u16, pub enc_algo: u16,

@ -84,7 +84,7 @@ pub fn ssh_parse_line(i: &[u8]) -> IResult<&[u8], &[u8]> {
)(i) )(i)
} }
#[derive(PartialEq)] #[derive(PartialEq, Eq)]
pub struct SshBanner<'a> { pub struct SshBanner<'a> {
pub protover: &'a [u8], pub protover: &'a [u8],
pub swver: &'a [u8], pub swver: &'a [u8],
@ -101,7 +101,7 @@ pub fn ssh_parse_banner(i: &[u8]) -> IResult<&[u8], SshBanner> {
Ok((i, SshBanner { protover, swver })) Ok((i, SshBanner { protover, swver }))
} }
#[derive(PartialEq)] #[derive(PartialEq, Eq)]
pub struct SshRecordHeader { pub struct SshRecordHeader {
pub pkt_len: u32, pub pkt_len: u32,
padding_len: u8, padding_len: u8,
@ -148,7 +148,7 @@ pub fn ssh_parse_record(i: &[u8]) -> IResult<&[u8], SshRecordHeader> {
)) ))
} }
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct SshPacketKeyExchange<'a> { pub struct SshPacketKeyExchange<'a> {
pub cookie: &'a [u8], pub cookie: &'a [u8],
pub kex_algs: &'a [u8], pub kex_algs: &'a [u8],

@ -38,7 +38,7 @@ pub enum SSHEvent {
} }
#[repr(u8)] #[repr(u8)]
#[derive(Copy, Clone, PartialOrd, PartialEq)] #[derive(Copy, Clone, PartialOrd, PartialEq, Eq)]
pub enum SSHConnectionState { pub enum SSHConnectionState {
SshStateInProgress = 0, SshStateInProgress = 0,
SshStateBannerWaitEol = 1, SshStateBannerWaitEol = 1,

@ -32,7 +32,7 @@ const DATA: u8 = 3;
const ACK: u8 = 4; const ACK: u8 = 4;
const ERROR: u8 = 5; const ERROR: u8 = 5;
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Eq)]
pub struct TFTPTransaction { pub struct TFTPTransaction {
pub opcode : u8, pub opcode : u8,
pub filename : String, pub filename : String,

Loading…
Cancel
Save