]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
rust: fix clippy lints for clippy::derive_partial_eq_without_eq
authorJason Ish <jason.ish@oisf.net>
Wed, 5 Oct 2022 14:52:14 +0000 (08:52 -0600)
committerVictor Julien <vjulien@oisf.net>
Mon, 24 Oct 2022 09:20:07 +0000 (11:20 +0200)
44 files changed:
rust/src/applayer.rs
rust/src/asn1/parse_rules.rs
rust/src/core.rs
rust/src/dcerpc/dcerpc.rs
rust/src/detect/byte_math.rs
rust/src/detect/error.rs
rust/src/detect/iprep.rs
rust/src/detect/stream_size.rs
rust/src/detect/uint.rs
rust/src/dns/detect.rs
rust/src/dns/dns.rs
rust/src/http2/decompression.rs
rust/src/http2/http2.rs
rust/src/http2/parser.rs
rust/src/ike/ikev2.rs
rust/src/jsonbuilder.rs
rust/src/mqtt/detect.rs
rust/src/mqtt/mqtt_message.rs
rust/src/nfs/nfs2_records.rs
rust/src/nfs/nfs3_records.rs
rust/src/nfs/nfs4_records.rs
rust/src/nfs/nfs_records.rs
rust/src/nfs/rpc_records.rs
rust/src/pgsql/parser.rs
rust/src/pgsql/pgsql.rs
rust/src/quic/cyu.rs
rust/src/quic/error.rs
rust/src/quic/frames.rs
rust/src/quic/parser.rs
rust/src/rdp/error.rs
rust/src/rdp/parser.rs
rust/src/rdp/rdp.rs
rust/src/rdp/windows.rs
rust/src/sip/parser.rs
rust/src/smb/auth.rs
rust/src/smb/dcerpc_records.rs
rust/src/smb/nbss_records.rs
rust/src/smb/ntlmssp_records.rs
rust/src/smb/smb1_records.rs
rust/src/smb/smb2_records.rs
rust/src/smb/smb3.rs
rust/src/ssh/parser.rs
rust/src/ssh/ssh.rs
rust/src/tftp/tftp.rs

index bff17d7a8e03475ec1070bf04d493b6745be435f..9eb4518eac89636795d3d4371f0a02ef090a67c5 100644 (file)
@@ -71,7 +71,7 @@ impl StreamSlice {
 }
 
 #[repr(C)]
-#[derive(Default, Debug,PartialEq)]
+#[derive(Default, Debug,PartialEq, Eq)]
 pub struct AppLayerTxConfig {
     /// config: log flags
     log_flags: u8,
@@ -96,7 +96,7 @@ impl AppLayerTxConfig {
 }
 
 #[repr(C)]
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct AppLayerTxData {
     /// config: log flags
     pub config: AppLayerTxConfig,
@@ -192,7 +192,7 @@ macro_rules!export_tx_data_get {
 }
 
 #[repr(C)]
-#[derive(Default,Debug,PartialEq,Copy,Clone)]
+#[derive(Default,Debug,PartialEq, Eq,Copy,Clone)]
 pub struct AppLayerStateData {
     pub file_flags: u16,
 }
@@ -222,7 +222,7 @@ macro_rules!export_state_data_get {
 }
 
 #[repr(C)]
-#[derive(Default,Debug,PartialEq,Copy,Clone)]
+#[derive(Default,Debug,PartialEq, Eq,Copy,Clone)]
 pub struct AppLayerResult {
     pub status: i32,
     pub consumed: u32,
@@ -491,7 +491,7 @@ impl AppLayerGetTxIterTuple {
 
 /// LoggerFlags tracks which loggers have already been executed.
 #[repr(C)]
-#[derive(Default, Debug,PartialEq)]
+#[derive(Default, Debug,PartialEq, Eq)]
 pub struct LoggerFlags {
     flags: u32,
 }
index 25380701724920e1f5365e5ffb9637ec136e8744..1538f76b548ff357ce448fb74dc6cf6848887b9b 100644 (file)
@@ -83,7 +83,7 @@ pub unsafe extern "C" fn rs_detect_asn1_free(ptr: *mut DetectAsn1Data) {
 }
 
 /// Struct to hold parsed asn1 keyword options
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct DetectAsn1Data {
     pub bitstring_overflow: bool,
     pub double_overflow: bool,
index f1d64042196046630471a5cfe6c062423f8005da..740099e05d85aaba5397c3e965b2b9c404265b2b 100644 (file)
@@ -44,7 +44,7 @@ const DIR_TOSERVER:        u8 = 0b0000_0100;
 const DIR_TOCLIENT:        u8 = 0b0000_1000;
 
 #[repr(C)]
-#[derive(Debug, PartialEq, Clone, Copy)]
+#[derive(Debug, PartialEq, Eq, Clone, Copy)]
 pub enum Direction {
     ToServer = 0x04,
     ToClient = 0x08,
index d877494f14b146e343c0a9cf72df595a8454b073..5299c0e13321de97526f8bb4d7eaaec0e0a1492a 100644 (file)
@@ -247,7 +247,7 @@ impl DCERPCUuidEntry {
     }
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct Uuid {
     pub time_low: Vec<u8>,
     pub time_mid: Vec<u8>,
@@ -283,7 +283,7 @@ pub struct BindCtxItem {
     pub versionminor: u16,
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct DCERPCBindAckResult {
     pub ack_result: u16,
     pub ack_reason: u16,
index 3922c1eb94b03f78242f600fe6dea09a32308149..beb40ec864d3182f814ce729231eae1fe7072c6b 100644 (file)
@@ -47,7 +47,7 @@ const DETECT_BYTEMATH_FLAG_REQUIRED: u8 = DETECT_BYTEMATH_FLAG_RESULT
     | DETECT_BYTEMATH_FLAG_OPER;
 
 #[repr(u8)]
-#[derive(Copy, Clone, Debug, PartialEq)]
+#[derive(Copy, Clone, Debug, PartialEq, Eq)]
 // operators: +, -, /, *, <<, >>
 pub enum ByteMathOperator {
     OperatorNone = 1,
@@ -60,7 +60,7 @@ pub enum ByteMathOperator {
 }
 
 #[repr(u8)]
-#[derive(Copy, Clone, Debug, PartialEq)]
+#[derive(Copy, Clone, Debug, PartialEq, Eq)]
 // endian <big|little|dce>
 pub enum ByteMathEndian {
     EndianNone = 0,
@@ -71,7 +71,7 @@ pub enum ByteMathEndian {
 pub const DETECT_BYTEMATH_ENDIAN_DEFAULT: ByteMathEndian = ByteMathEndian::BigEndian;
 
 #[repr(u8)]
-#[derive(Copy, Clone, Debug, PartialEq)]
+#[derive(Copy, Clone, Debug, PartialEq, Eq)]
 pub enum ByteMathBase {
     BaseNone = 0,
     BaseOct = 8,
index d0738c68744e933f472652ca57d63bbe24db60d6..4959e2c883a408ff385f3180ee2e29d72b528d05 100644 (file)
@@ -20,7 +20,7 @@ use nom7::error::{ErrorKind, ParseError};
 /// Custom rule parse errors.
 ///
 /// Implemented based on the Nom example for implementing custom errors.
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub enum RuleParseError<I> {
     InvalidByteMath(String),
 
index 1e8c0e428ea6520b4110f994a51f99f3ecb7905c..feefb8ab1e93718dfab803803615ceb66d3a4833 100644 (file)
@@ -27,7 +27,7 @@ use std::ffi::{CStr, CString};
 use std::str::FromStr;
 
 #[repr(u8)]
-#[derive(Clone, Copy, PartialEq, FromPrimitive, Debug)]
+#[derive(Clone, Copy, PartialEq, Eq, FromPrimitive, Debug)]
 pub enum DetectIPRepDataCmd {
     IPRepCmdAny = 0,
     IPRepCmdBoth = 1,
index c7373eb7140beb84b5b993b8433edc36e9ef3fc2..394cd781a1104a3fb04f744602e6a33a6dff903e 100644 (file)
@@ -25,7 +25,7 @@ use std::ffi::CStr;
 use std::str::FromStr;
 
 #[repr(u8)]
-#[derive(Clone, Copy, PartialEq, FromPrimitive, Debug)]
+#[derive(Clone, Copy, PartialEq, Eq, FromPrimitive, Debug)]
 pub enum DetectStreamSizeDataFlags {
     StreamSizeServer = 1,
     StreamSizeClient = 2,
index d5e41297f6599ea494e5dccc32fa9611f52b4882..4d99047572cae053a9ab88260829f59b44746780 100644 (file)
@@ -25,7 +25,7 @@ use nom7::IResult;
 
 use std::ffi::CStr;
 
-#[derive(PartialEq, Clone, Debug)]
+#[derive(PartialEq, Eq, Clone, Debug)]
 #[repr(u8)]
 pub enum DetectUintMode {
     DetectUintModeEqual,
index 26cbb31d0913dace16287e51675603f611f96a51..53ed4c276cefc037a6a0aa8fdd83494e4bd0e533 100644 (file)
@@ -20,7 +20,7 @@ use crate::core::*;
 use std::ffi::CStr;
 use std::os::raw::{c_char, c_void};
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct DetectDnsOpcode {
     negate: bool,
     opcode: u8,
index bd548a1544064ca3441c457556e61b0f35b627d2..e545348d7d9e69f609ab871ceed6dbebc348f5de 100644 (file)
@@ -123,7 +123,7 @@ pub enum DnsFrameType {
 }
 
 
-#[derive(Debug, PartialEq, AppLayerEvent)]
+#[derive(Debug, PartialEq, Eq, AppLayerEvent)]
 pub enum DNSEvent {
     MalformedData,
     NotRequest,
@@ -131,7 +131,7 @@ pub enum DNSEvent {
     ZFlagSet,
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 #[repr(C)]
 pub struct DNSHeader {
     pub tx_id: u16,
@@ -149,7 +149,7 @@ pub struct DNSQueryEntry {
     pub rrclass: u16,
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct DNSRDataSOA {
     /// Primary name server for this zone
     pub mname: Vec<u8>,
@@ -167,7 +167,7 @@ pub struct DNSRDataSOA {
     pub minimum: u32,
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct DNSRDataSSHFP {
     /// Algorithm number
     pub algo: u8,
@@ -177,7 +177,7 @@ pub struct DNSRDataSSHFP {
     pub fingerprint: Vec<u8>,
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct DNSRDataSRV {
     /// Priority
     pub priority: u16,
@@ -190,7 +190,7 @@ pub struct DNSRDataSRV {
 }
 
 /// Represents RData of various formats
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub enum DNSRData {
     // RData is an address
     A(Vec<u8>),
@@ -211,7 +211,7 @@ pub enum DNSRData {
     Unknown(Vec<u8>),
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct DNSAnswerEntry {
     pub name: Vec<u8>,
     pub rrtype: u16,
index ff5c7da8485c456852c0623c004032342482a743..df94d20690a3061ac4d29304dc4df0986b3bbb8e 100644 (file)
@@ -25,7 +25,7 @@ use std::io::{Cursor, Read, Write};
 pub const HTTP2_DECOMPRESSION_CHUNK_SIZE: usize = 0x1000; // 4096
 
 #[repr(u8)]
-#[derive(Copy, Clone, PartialOrd, PartialEq, Debug)]
+#[derive(Copy, Clone, PartialOrd, PartialEq, Eq, Debug)]
 pub enum HTTP2ContentEncoding {
     Unknown = 0,
     Gzip = 1,
index 1586e22c991f97ffbac48fbe2f01af8cb3fb71b5..db42839848e5a90c3f4512700ae98cc6c33f453b 100644 (file)
@@ -48,7 +48,7 @@ pub extern "C" fn rs_http2_init(context: &'static mut SuricataFileContext) {
 }
 
 #[repr(u8)]
-#[derive(Copy, Clone, PartialOrd, PartialEq)]
+#[derive(Copy, Clone, PartialOrd, PartialEq, Eq)]
 pub enum HTTP2ConnectionState {
     Http2StateInit = 0,
     Http2StateMagicDone = 1,
@@ -64,7 +64,7 @@ pub static mut HTTP2_MAX_TABLESIZE: u32 = 65536; // 0x10000
 static mut HTTP2_MAX_STREAMS: usize = 4096; // 0x1000
 
 #[repr(u8)]
-#[derive(Copy, Clone, PartialOrd, PartialEq, Debug)]
+#[derive(Copy, Clone, PartialOrd, PartialEq, Eq, Debug)]
 pub enum HTTP2FrameUnhandledReason {
     UnknownType = 0,
     TooLong = 1,
@@ -100,7 +100,7 @@ pub enum HTTP2FrameTypeData {
 }
 
 #[repr(u8)]
-#[derive(Copy, Clone, PartialOrd, PartialEq, Debug)]
+#[derive(Copy, Clone, PartialOrd, PartialEq, Eq, Debug)]
 pub enum HTTP2TransactionState {
     HTTP2StateIdle = 0,
     HTTP2StateOpen = 1,
index 5bc73814d58665dc504ba2536e55298c70212bd6..5314308bc534ca655e9db98fc0534d3b7432819c 100644 (file)
@@ -32,7 +32,7 @@ use std::fmt;
 use std::str::FromStr;
 
 #[repr(u8)]
-#[derive(Clone, Copy, PartialEq, FromPrimitive, Debug)]
+#[derive(Clone, Copy, PartialEq, Eq, FromPrimitive, Debug)]
 pub enum HTTP2FrameType {
     DATA = 0,
     HEADERS = 1,
@@ -74,7 +74,7 @@ impl std::str::FromStr for HTTP2FrameType {
     }
 }
 
-#[derive(PartialEq, Debug)]
+#[derive(PartialEq, Eq, Debug)]
 pub struct HTTP2FrameHeader {
     //we could add detection on (GOAWAY) additional data
     pub length: u32,
@@ -103,7 +103,7 @@ pub fn http2_parse_frame_header(i: &[u8]) -> IResult<&[u8], HTTP2FrameHeader> {
 }
 
 #[repr(u32)]
-#[derive(Clone, Copy, PartialEq, FromPrimitive, Debug)]
+#[derive(Clone, Copy, PartialEq, Eq, FromPrimitive, Debug)]
 pub enum HTTP2ErrorCode {
     NOERROR = 0,
     PROTOCOLERROR = 1,
@@ -330,7 +330,7 @@ fn http2_frame_header_static(n: u64, dyn_headers: &HTTP2DynTable) -> Option<HTTP
 }
 
 #[repr(u8)]
-#[derive(Copy, Clone, PartialOrd, PartialEq, Debug)]
+#[derive(Copy, Clone, PartialOrd, PartialEq, Eq, Debug)]
 pub enum HTTP2HeaderDecodeStatus {
     HTTP2HeaderDecodeSuccess = 0,
     HTTP2HeaderDecodeSizeUpdate = 1,
@@ -681,7 +681,7 @@ pub fn http2_parse_frame_continuation<'a>(
 }
 
 #[repr(u16)]
-#[derive(Clone, Copy, PartialEq, FromPrimitive, Debug)]
+#[derive(Clone, Copy, PartialEq, Eq, FromPrimitive, Debug)]
 pub enum HTTP2SettingsId {
     SETTINGSHEADERTABLESIZE = 1,
     SETTINGSENABLEPUSH = 2,
index 5bd637a61106ef63d684951d74ece392e1a87535..37004780a4af093b44fa9b3f743e41924083c6ab 100644 (file)
@@ -26,7 +26,7 @@ use crate::ike::ike::{IKEState, IKETransaction, IkeEvent};
 use crate::ike::parser::IsakmpHeader;
 use ipsec_parser::{IkeExchangeType, IkePayloadType, IkeV2Header};
 
-#[derive(Clone, Debug, PartialEq)]
+#[derive(Clone, Debug, PartialEq, Eq)]
 #[repr(u8)]
 pub enum IKEV2ConnectionState {
     Init,
index 515a8be319ae7a2009a57243f419ae4027a68faf..8fde424dd82846c8b16cba48035e35b4198d9c06 100644 (file)
@@ -23,7 +23,7 @@ use std::str::Utf8Error;
 
 const INIT_SIZE: usize = 4096;
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub enum JsonError {
     InvalidState,
     Utf8Error(Utf8Error),
index 3a313a07acf316593ba12335d6b43da6e7278800..8e11abde7d69570ac53261bc1e3e2a5161d90308 100644 (file)
@@ -23,7 +23,7 @@ use std::ffi::CStr;
 use std::ptr;
 use std::str::FromStr;
 
-#[derive(FromPrimitive, Debug, Copy, Clone, PartialOrd, PartialEq)]
+#[derive(FromPrimitive, Debug, Copy, Clone, PartialOrd, PartialEq, Eq)]
 #[allow(non_camel_case_types)]
 #[repr(u8)]
 pub enum MQTTFlagState {
index 62ad006c128a620075d1eec07476a8eb500b81bf..390fc9e85a1922b6c24380e3474bcb9d81a9306d 100644 (file)
@@ -52,7 +52,7 @@ pub enum MQTTOperation {
 }
 
 #[repr(u8)]
-#[derive(Clone, Copy, PartialEq, PartialOrd, FromPrimitive, Debug)]
+#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, FromPrimitive, Debug)]
 pub enum MQTTTypeCode {
     UNASSIGNED = 0,
     CONNECT = 1,
index 15b0026cd3d408ad65d70958ae6233c812383d1e..877542f8be5ee10c414b72966f9398cfb051eb18 100644 (file)
@@ -23,7 +23,7 @@ use nom7::combinator::{rest, cond};
 use nom7::number::streaming::be_u32;
 use nom7::IResult;
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Nfs2Handle<'a> {
     pub value: &'a[u8],
 }
@@ -33,7 +33,7 @@ pub fn parse_nfs2_handle(i: &[u8]) -> IResult<&[u8], Nfs2Handle> {
     Ok((i, Nfs2Handle { value }))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Nfs2RequestLookup<'a> {
     pub handle: Nfs2Handle<'a>,
     pub name_vec: Vec<u8>,
@@ -51,7 +51,7 @@ pub fn parse_nfs2_request_lookup(i: &[u8]) -> IResult<&[u8], Nfs2RequestLookup>
     Ok((i, req))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Nfs2RequestRead<'a> {
     pub handle: Nfs2Handle<'a>,
     pub offset: u32,
@@ -84,7 +84,7 @@ pub fn parse_nfs2_reply_read(i: &[u8]) -> IResult<&[u8], NfsReplyRead> {
     Ok((i, reply))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Nfs2Attributes<> {
     pub atype: u32,
     pub asize: u32,
index 6486dd05f0e4492fcad92b084626132c05b413de..8348ea7102d27c5266877ed7418f28943b469930 100644 (file)
@@ -25,7 +25,7 @@ use nom7::multi::{length_data, many0};
 use nom7::number::streaming::{be_u32, be_u64};
 use nom7::IResult;
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct Nfs3Handle<'a> {
     pub len: u32,
     pub value: &'a [u8],
@@ -38,7 +38,7 @@ pub fn parse_nfs3_handle(i: &[u8]) -> IResult<&[u8], Nfs3Handle> {
     Ok((i, handle))
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct Nfs3ReplyCreate<'a> {
     pub status: u32,
     pub handle: Option<Nfs3Handle<'a>>,
@@ -52,7 +52,7 @@ pub fn parse_nfs3_response_create(i: &[u8]) -> IResult<&[u8], Nfs3ReplyCreate> {
     Ok((i, reply))
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct Nfs3ReplyLookup<'a> {
     pub status: u32,
     pub handle: Nfs3Handle<'a>,
@@ -65,7 +65,7 @@ pub fn parse_nfs3_response_lookup(i: &[u8]) -> IResult<&[u8], Nfs3ReplyLookup> {
     Ok((i, reply))
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct Nfs3RequestCreate<'a> {
     pub handle: Nfs3Handle<'a>,
     pub name_len: u32,
@@ -91,7 +91,7 @@ pub fn parse_nfs3_request_create(i: &[u8]) -> IResult<&[u8], Nfs3RequestCreate>
     Ok((i, req))
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct Nfs3RequestRemove<'a> {
     pub handle: Nfs3Handle<'a>,
     pub name_len: u32,
@@ -111,7 +111,7 @@ pub fn parse_nfs3_request_remove(i: &[u8]) -> IResult<&[u8], Nfs3RequestRemove>
     Ok((i, req))
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct Nfs3RequestRmdir<'a> {
     pub handle: Nfs3Handle<'a>,
     pub name_vec: Vec<u8>,
@@ -129,7 +129,7 @@ pub fn parse_nfs3_request_rmdir(i: &[u8]) -> IResult<&[u8], Nfs3RequestRmdir> {
     Ok((i, req))
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct Nfs3RequestMkdir<'a> {
     pub handle: Nfs3Handle<'a>,
     pub name_vec: Vec<u8>,
@@ -148,7 +148,7 @@ pub fn parse_nfs3_request_mkdir(i: &[u8]) -> IResult<&[u8], Nfs3RequestMkdir> {
     Ok((i, req))
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct Nfs3RequestRename<'a> {
     pub from_handle: Nfs3Handle<'a>,
     pub from_name_vec: Vec<u8>,
@@ -175,7 +175,7 @@ pub fn parse_nfs3_request_rename(i: &[u8]) -> IResult<&[u8], Nfs3RequestRename>
     Ok((i, req))
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct Nfs3RequestGetAttr<'a> {
     pub handle: Nfs3Handle<'a>,
 }
@@ -185,7 +185,7 @@ pub fn parse_nfs3_request_getattr(i: &[u8]) -> IResult<&[u8], Nfs3RequestGetAttr
     Ok((i, Nfs3RequestGetAttr { handle }))
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct Nfs3RequestAccess<'a> {
     pub handle: Nfs3Handle<'a>,
     pub check_access: u32,
@@ -201,7 +201,7 @@ pub fn parse_nfs3_request_access(i: &[u8]) -> IResult<&[u8], Nfs3RequestAccess>
     Ok((i, req))
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct Nfs3RequestCommit<'a> {
     pub handle: Nfs3Handle<'a>,
 }
@@ -213,7 +213,7 @@ pub fn parse_nfs3_request_commit(i: &[u8]) -> IResult<&[u8], Nfs3RequestCommit>
     Ok((i, Nfs3RequestCommit { handle }))
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct Nfs3RequestRead<'a> {
     pub handle: Nfs3Handle<'a>,
     pub offset: u64,
@@ -226,7 +226,7 @@ pub fn parse_nfs3_request_read(i: &[u8]) -> IResult<&[u8], Nfs3RequestRead> {
     Ok((i, Nfs3RequestRead { handle, offset }))
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct Nfs3RequestLookup<'a> {
     pub handle: Nfs3Handle<'a>,
     pub name_vec: Vec<u8>,
@@ -243,7 +243,7 @@ pub fn parse_nfs3_request_lookup(i: &[u8]) -> IResult<&[u8], Nfs3RequestLookup>
     Ok((i, req))
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct Nfs3ResponseReaddirplusEntryC<'a> {
     pub name_vec: Vec<u8>,
     pub handle: Option<Nfs3Handle<'a>>,
@@ -268,7 +268,7 @@ pub fn parse_nfs3_response_readdirplus_entry(
     Ok((i, resp))
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct Nfs3ResponseReaddirplusEntry<'a> {
     pub entry: Option<Nfs3ResponseReaddirplusEntryC<'a>>,
 }
@@ -281,7 +281,7 @@ pub fn parse_nfs3_response_readdirplus_entry_cond(
     Ok((i, Nfs3ResponseReaddirplusEntry { entry }))
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct Nfs3ResponseReaddirplus<'a> {
     pub status: u32,
     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 handle: Nfs3Handle<'a>,
     pub cookie: u64,
@@ -329,7 +329,7 @@ pub fn parse_nfs3_request_readdirplus(i: &[u8]) -> IResult<&[u8], Nfs3RequestRea
     Ok((i, req))
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct Nfs3RequestWrite<'a> {
     pub handle: Nfs3Handle<'a>,
     pub offset: u64,
index 6d066c2b64706b5a8dc6f64d8f1d7cfd02808052..9bbc91db5200519e08aa08b687e310af3f17ada7 100644 (file)
@@ -36,7 +36,7 @@ const RPCSEC_GSS: u32 = 6;
 // Linux defines NFSD_MAX_OPS_PER_COMPOUND to 16 (tested in Linux 5.15.1).
 const NFSD_MAX_OPS_PER_COMPOUND: usize = 64;
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub enum Nfs4RequestContent<'a> {
     PutFH(Nfs4Handle<'a>),
     GetFH,
@@ -72,7 +72,7 @@ pub enum Nfs4RequestContent<'a> {
     DestroyClientID(&'a[u8]),
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Nfs4Attr {
     attr_mask: u64,
 }
@@ -106,7 +106,7 @@ fn nfs4_parse_attrbits(i: &[u8]) -> IResult<&[u8], Nfs4Attr> {
     Ok((i, attr))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Nfs4StateId<'a> {
     pub seqid: u32,
     pub data: &'a[u8],
@@ -119,7 +119,7 @@ fn nfs4_parse_stateid(i: &[u8]) -> IResult<&[u8], Nfs4StateId> {
     Ok((i, state))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Nfs4Handle<'a> {
     pub len: u32,
     pub value: &'a[u8],
@@ -139,7 +139,7 @@ fn nfs4_parse_nfsstring(i: &[u8]) -> IResult<&[u8], &[u8]> {
     Ok((i, data))
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct Nfs4RequestLayoutReturn<'a> {
     pub layout_type: u32,
     pub return_type: u32,
@@ -167,7 +167,7 @@ fn nfs4_req_layoutreturn(i: &[u8]) -> IResult<&[u8], Nfs4RequestContent> {
     Ok((i, req))
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct Nfs4RequestGetDevInfo<'a> {
     pub device_id: &'a[u8],
     pub layout_type: u32,
@@ -190,7 +190,7 @@ fn nfs4_req_getdevinfo(i: &[u8]) -> IResult<&[u8], Nfs4RequestContent> {
     Ok((i, req))
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct Nfs4RequestCreateSession<'a> {
     pub client_id: &'a[u8],
     pub seqid: u32,
@@ -222,7 +222,7 @@ fn nfs4_req_putfh(i: &[u8]) -> IResult<&[u8], Nfs4RequestContent> {
     map(nfs4_parse_handle, Nfs4RequestContent::PutFH)(i)
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Nfs4RequestSetClientId<'a> {
     pub client_id: &'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))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Nfs4RequestCreate<'a> {
     pub ftype4: u32,
     pub filename: &'a[u8],
@@ -270,7 +270,7 @@ fn nfs4_req_create(i: &[u8]) -> IResult<&[u8], Nfs4RequestContent> {
     Ok((i, req))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub enum Nfs4OpenRequestContent<'a> {
     Exclusive4(&'a[u8]),
     Unchecked4(Nfs4Attr),
@@ -300,7 +300,7 @@ fn nfs4_req_open_type(i: &[u8]) -> IResult<&[u8], Nfs4OpenRequestContent> {
     Ok((i, data))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Nfs4RequestOpen<'a> {
     pub open_type: u32,
     pub filename: &'a[u8],
@@ -335,7 +335,7 @@ fn nfs4_req_readdir(i: &[u8]) -> IResult<&[u8], Nfs4RequestContent> {
     Ok((i, Nfs4RequestContent::ReadDir))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Nfs4RequestRename<'a> {
     pub oldname: &'a[u8],
     pub newname: &'a[u8],
@@ -351,7 +351,7 @@ fn nfs4_req_rename(i: &[u8]) -> IResult<&[u8], Nfs4RequestContent> {
     Ok((i, req))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Nfs4RequestLookup<'a> {
     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)
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Nfs4RequestSetAttr<'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)
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Nfs4RequestWrite<'a> {
     pub stateid: Nfs4StateId<'a>,
     pub offset: u64,
@@ -417,7 +417,7 @@ fn nfs4_req_write(i: &[u8]) -> IResult<&[u8], Nfs4RequestContent> {
     Ok((i, req))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Nfs4RequestRead<'a> {
     pub stateid: Nfs4StateId<'a>,
     pub offset: u64,
@@ -442,7 +442,7 @@ fn nfs4_req_close(i: &[u8]) -> IResult<&[u8], Nfs4RequestContent> {
     Ok((i, Nfs4RequestContent::Close(stateid)))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Nfs4RequestOpenConfirm<'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)))
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct Nfs4RequestLayoutGet<'a> {
     pub layout_type: u32,
     pub length: u64,
@@ -521,7 +521,7 @@ fn nfs4_req_layoutget(i: &[u8]) -> IResult<&[u8], Nfs4RequestContent> {
     Ok((i, req))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Nfs4RequestExchangeId<'a> {
     pub client_string: &'a[u8],
     pub nii_domain: &'a[u8],
@@ -546,7 +546,7 @@ fn nfs4_req_exchangeid(i: &[u8]) -> IResult<&[u8], Nfs4RequestContent> {
     Ok((i, req))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Nfs4RequestSequence<'a> {
     pub ssn_id: &'a[u8],
 }
@@ -603,7 +603,7 @@ fn parse_request_compound_command(i: &[u8]) -> IResult<&[u8], Nfs4RequestContent
     Ok((i, cmd_data))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Nfs4RequestCompoundRecord<'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 }))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub enum Nfs4ResponseContent<'a> {
     PutFH(u32),
     PutRootFH(u32),
@@ -663,7 +663,7 @@ fn nfs4_res_layoutreturn(i:&[u8]) -> IResult<&[u8], Nfs4ResponseContent> {
     Ok((i, Nfs4ResponseContent::LayoutReturn(status)))
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct Nfs4ResponseCreateSession<'a> {
     pub ssn_id: &'a[u8],
     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 )))
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct Nfs4ResponseExchangeId<'a> {
     pub client_id: &'a[u8],
     pub eir_minorid: u64,
@@ -728,7 +728,7 @@ fn nfs4_res_exchangeid(i: &[u8]) -> IResult<&[u8], Nfs4ResponseContent> {
     Ok((i, Nfs4ResponseContent::ExchangeId( status, xchngid_data)))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Nfs4ResponseWrite {
     pub count: u32,
     pub committed: u32,
@@ -747,7 +747,7 @@ fn nfs4_res_write(i: &[u8]) -> IResult<&[u8], Nfs4ResponseContent> {
     Ok((i, Nfs4ResponseContent::Write(status, wd)))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Nfs4ResponseRead<'a> {
     pub eof: bool,
     pub count: u32,
@@ -772,21 +772,21 @@ fn nfs4_res_read(i: &[u8]) -> IResult<&[u8], Nfs4ResponseContent> {
     Ok((i, Nfs4ResponseContent::Read(status, rd)))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Nfs4ResponseOpen<'a> {
     pub stateid: Nfs4StateId<'a>,
     pub result_flags: u32,
     pub delegate: Nfs4ResponseFileDelegation<'a>,
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub enum Nfs4ResponseFileDelegation<'a> {
     DelegateRead(Nfs4ResponseOpenDelegateRead<'a>),
     DelegateWrite(Nfs4ResponseOpenDelegateWrite<'a>),
     DelegateNone(u32),
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct Nfs4ResponseOpenDelegateWrite<'a> {
     pub stateid: Nfs4StateId<'a>,
     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 stateid: Nfs4StateId<'a>,
 }
@@ -856,7 +856,7 @@ fn nfs4_res_open(i: &[u8]) -> IResult<&[u8], Nfs4ResponseContent> {
     Ok((i, Nfs4ResponseContent::Open(status, open_data)))
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct Nfs4ResponseGetDevInfo<'a> {
     pub layout_type: u32,
     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*/
 // in case of multiple file handles, return handles in a vector
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct Nfs4ResponseLayoutGet<'a> {
     pub stateid: Nfs4StateId<'a>,
     pub length: u64,
@@ -965,12 +965,12 @@ fn nfs4_res_secinfo_no_name(i: &[u8]) -> IResult<&[u8], Nfs4ResponseContent> {
     Ok((i, Nfs4ResponseContent::SecInfoNoName(status)))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Nfs4ResponseReaddirEntry<'a> {
     pub name: &'a[u8],
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Nfs4ResponseReaddir<'a> {
     pub eof: bool,
     pub listing: Vec<Option<Nfs4ResponseReaddirEntry<'a>>>,
@@ -1114,7 +1114,7 @@ fn nfs4_res_commit(i: &[u8]) -> IResult<&[u8], Nfs4ResponseContent> {
     Ok((i, Nfs4ResponseContent::Commit(status)))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Nfs4ResponseAccess {
     pub supported_types: u32,
     pub access_rights: u32,
@@ -1136,7 +1136,7 @@ fn nfs4_res_access(i: &[u8]) -> IResult<&[u8], Nfs4ResponseContent> {
     Ok((i, Nfs4ResponseContent::Access(status, ad)))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Nfs4ResponseSequence<'a> {
     pub ssn_id: &'a[u8],
 }
@@ -1203,7 +1203,7 @@ fn nfs4_res_compound_command(i: &[u8]) -> IResult<&[u8], Nfs4ResponseContent> {
     Ok((i, cmd_data))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Nfs4ResponseCompoundRecord<'a> {
     pub status: u32,
     pub commands: Vec<Nfs4ResponseContent<'a>>,
index a81878871e1ad61fd6f08e6971e71af3e18cc6df..3b0804bfc0f06a9c2a5909724f1baf0eebf475cf 100644 (file)
@@ -17,7 +17,7 @@
 
 //! Nom parsers for NFS
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct NfsReplyRead<'a> {
     pub status: u32,
     pub attr_follows: u32,
index d2d89f4229b54d025f0dcb8d4565819194f9cdc9..66075fd82d92b420ab87873c1cfc1d3973f62516 100644 (file)
@@ -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_VERIFIER_SIZE: u32 = 4096; // Linux kernel defines 400.
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub enum RpcRequestCreds<'a> {
     Unix(RpcRequestCredsUnix<'a>),
     GssApi(RpcRequestCredsGssApi<'a>),
     Unknown(&'a [u8]),
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct RpcRequestCredsUnix<'a> {
     pub stamp: u32,
     pub machine_name_len: u32,
@@ -71,7 +71,7 @@ fn parse_rpc_request_creds_unix(i: &[u8]) -> IResult<&[u8], RpcRequestCreds> {
     Ok((i, creds))
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct RpcRequestCredsGssApi<'a> {
     pub version: u32,
     pub procedure: u32,
@@ -101,7 +101,7 @@ fn parse_rpc_request_creds_unknown(i: &[u8]) -> IResult<&[u8], RpcRequestCreds>
     Ok((&[], RpcRequestCreds::Unknown(i)))
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct RpcGssApiIntegrity<'a> {
     pub seq_num: u32,
     pub data: &'a [u8],
@@ -117,7 +117,7 @@ pub fn parse_rpc_gssapi_integrity(i: &[u8]) -> IResult<&[u8], RpcGssApiIntegrity
     Ok((i, res))
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct RpcPacketHeader {
     pub frag_is_last: bool,
     pub frag_len: u32,
@@ -145,7 +145,7 @@ pub fn parse_rpc_packet_header(i: &[u8]) -> IResult<&[u8], RpcPacketHeader> {
     Ok((i, hdr))
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct RpcReplyPacket<'a> {
     pub hdr: RpcPacketHeader,
 
@@ -161,7 +161,7 @@ pub struct RpcReplyPacket<'a> {
 }
 
 // top of request packet, just to get to procedure
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct RpcRequestPacketPartial {
     pub hdr: RpcPacketHeader,
 
@@ -187,7 +187,7 @@ pub fn parse_rpc_request_partial(i: &[u8]) -> IResult<&[u8], RpcRequestPacketPar
     Ok((i, req))
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct RpcPacket<'a> {
     pub hdr: RpcPacketHeader,
 
index 8f2827b16c06cb6afd173b0a1dd7c687eeeb0870..ab0b00d8752610fca76aa564ff911619632a9f49 100644 (file)
@@ -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_GSSAPI: u16 = 5680; // 0x1630
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub enum PgsqlParameters {
     // startup parameters
     User,
@@ -113,27 +113,27 @@ impl From<&[u8]> for PgsqlParameters {
     }
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct PgsqlParameter {
     pub name: PgsqlParameters,
     pub value: Vec<u8>,
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct PgsqlStartupParameters {
     pub user: PgsqlParameter,
     pub database: Option<PgsqlParameter>,
     pub optional_params: Option<Vec<PgsqlParameter>>,
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct DummyStartupPacket {
     length: u32,
     proto_major: u16,
     proto_minor: u16,
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct StartupPacket {
     pub length: u32,
     pub proto_major: u16,
@@ -141,20 +141,20 @@ pub struct StartupPacket {
     pub params: PgsqlStartupParameters,
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct RegularPacket {
     pub identifier: u8,
     pub length: u32,
     pub payload: Vec<u8>,
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct PgsqlErrorNoticeMessageField {
     pub field_type: PgsqlErrorNoticeFieldType,
     pub field_value: Vec<u8>,
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct ErrorNoticeMessage {
     pub identifier: u8,
     pub length: u32,
@@ -171,7 +171,7 @@ impl ErrorNoticeMessage {
     }
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub enum SSLResponseMessage {
     SSLAccepted,
     SSLRejected,
@@ -208,14 +208,14 @@ impl From<char> for SSLResponseMessage {
     }
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct ParameterStatusMessage {
     pub identifier: u8,
     pub length: u32,
     pub param: PgsqlParameter,
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct BackendKeyDataMessage {
     pub identifier: u8,
     pub length: u32,
@@ -223,7 +223,7 @@ pub struct BackendKeyDataMessage {
     pub secret_key: u32,
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct ConsolidatedDataRowPacket {
     pub identifier: u8,
     pub length: u32,
@@ -231,14 +231,14 @@ pub struct ConsolidatedDataRowPacket {
     pub data_size: u64,
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct ReadyForQueryMessage {
     pub identifier: u8,
     pub length: u32,
     pub transaction_status: u8,
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct NotificationResponse {
     pub identifier: u8,
     pub length: u32,
@@ -248,7 +248,7 @@ pub struct NotificationResponse {
     pub payload: Vec<u8>,
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub enum PgsqlBEMessage {
     SSLResponse(SSLResponseMessage),
     ErrorResponse(ErrorNoticeMessage),
@@ -316,7 +316,7 @@ impl PgsqlBEMessage {
     }
 }
 
-#[derive(Debug, PartialEq, Clone)]
+#[derive(Debug, PartialEq, Eq, Clone)]
 pub enum SASLAuthenticationMechanism {
     ScramSha256,
     ScramSha256Plus,
@@ -332,13 +332,13 @@ impl SASLAuthenticationMechanism {
     }
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct TerminationMessage {
     pub identifier: u8,
     pub length: u32,
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub enum PgsqlFEMessage {
     SSLRequest(DummyStartupPacket),
     StartupMessage(StartupPacket),
@@ -363,7 +363,7 @@ impl PgsqlFEMessage {
     }
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct AuthenticationMessage {
     pub identifier: u8,
     pub length: u32,
@@ -371,7 +371,7 @@ pub struct AuthenticationMessage {
     pub payload: Vec<u8>,
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct SASLInitialResponsePacket {
     pub identifier: u8,
     pub length: u32,
@@ -380,7 +380,7 @@ pub struct SASLInitialResponsePacket {
     pub sasl_param: Vec<u8>,
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct AuthenticationSASLMechanismMessage {
     identifier: u8,
     length: u32,
@@ -388,7 +388,7 @@ pub struct AuthenticationSASLMechanismMessage {
     auth_mechanisms: Vec<SASLAuthenticationMechanism>,
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct RowField {
     pub field_name: Vec<u8>,
     pub table_oid: u32,
@@ -402,7 +402,7 @@ pub struct RowField {
     pub format_code: u16,
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct RowDescriptionMessage {
     pub identifier: u8,
     pub length: u32,
@@ -410,14 +410,14 @@ pub struct RowDescriptionMessage {
     pub fields: Vec<RowField>,
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct ColumnFieldValue {
     // Can be 0, or -1 as a special NULL column value
     pub value_length: i32,
     pub value: Vec<u8>,
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub enum PgsqlErrorNoticeFieldType {
     SeverityLocalizable,
     SeverityNonLocalizable,
index bfd47d1b77a87fa7635671a37e8b9caed33abd07..9a19b01637063bfa6553be4824c08ad90b448da7 100644 (file)
@@ -35,7 +35,7 @@ static mut ALPROTO_PGSQL: AppProto = ALPROTO_UNKNOWN;
 static mut PGSQL_MAX_TX: usize = 1024;
 
 #[repr(u8)]
-#[derive(Copy, Clone, PartialOrd, PartialEq, Debug)]
+#[derive(Copy, Clone, PartialOrd, PartialEq, Eq, Debug)]
 pub enum PgsqlTransactionState {
     Init = 0,
     RequestReceived,
@@ -88,7 +88,7 @@ impl PgsqlTransaction {
     }
 }
 
-#[derive(Clone, Copy, Debug, PartialEq)]
+#[derive(Clone, Copy, Debug, PartialEq, Eq)]
 pub enum PgsqlStateProgress {
     IdleState,
     SSLRequestReceived,
index 635ca2982ee63ba9f5b4a1d8bcd9edf3d73dd305..026467816c365dca125143d02939589d258339fd 100644 (file)
@@ -21,7 +21,7 @@ use super::{
 };
 use md5::{Digest, Md5};
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct Cyu {
     pub string: String,
     pub hash: String,
index a508a67288ca2368c67d128a3b08a88826c32419..89ac1fba402195c11bc1b8c49e537abb21fc0675 100644 (file)
@@ -19,7 +19,7 @@ use nom7::error::{ErrorKind, ParseError};
 use std::error::Error;
 use std::fmt;
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub enum QuicError {
     StreamTagNoMatch(u32),
     InvalidPacket,
index 14ee239f37fc74ad291f7e33b9ab853f82a0d73d..c713dea42a17179ee1a00b428547c4375b880af2 100644 (file)
@@ -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 etype: TlsExtensionType,
     pub values: Vec<Vec<u8>>,
index 7623174752bc1a765261188ba1556cc58a755603..aafc51b367c9df3bb156325286a1fed91aef0286 100644 (file)
@@ -78,7 +78,7 @@ impl From<u32> for QuicVersion {
     }
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub enum QuicType {
     Initial,
     Retry,
@@ -93,7 +93,7 @@ const QUIC_FLAG_DCID_LEN: u8 = 0x8;
 const QUIC_FLAG_NONCE: u8 = 0x4;
 const QUIC_FLAG_VERSION: u8 = 0x1;
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct PublicFlags {
     pub is_long: bool,
     pub raw: u8,
@@ -161,7 +161,7 @@ pub fn quic_var_uint(input: &[u8]) -> IResult<&[u8], u64, QuicError> {
 }
 
 /// A QUIC packet's header.
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct QuicHeader {
     pub flags: PublicFlags,
     pub ty: QuicType,
index 609b4f1ea5ad197839c5f59cea3922a0a951a38a..486d27abeb26029e2e3ebf4eb00e16c4b54b051f 100644 (file)
@@ -20,7 +20,7 @@
 use nom7::error::{Error, ErrorKind, ParseError};
 use nom7::ErrorConvert;
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub enum RdpError {
     UnimplementedLengthDeterminant,
     NotX224Class0Error,
index 20e3b8e5eb1847554a5bcc5f35228b05e2e40949..fcccd00827d0202fe952e74bee945bc6e31ec525 100644 (file)
@@ -72,19 +72,19 @@ fn device_scale_to_opt(x: u32) -> Option<u32> {
 // ================
 
 /// t.123-spec, section 8
-#[derive(Clone, Debug, PartialEq)]
+#[derive(Clone, Debug, PartialEq, Eq)]
 pub enum TpktVersion {
     T123 = 0x3,
 }
 
 /// t.123-spec, section 8
-#[derive(Clone, Debug, PartialEq)]
+#[derive(Clone, Debug, PartialEq, Eq)]
 pub struct T123Tpkt {
     pub child: T123TpktChild,
 }
 
 /// variants that a t.123 tpkt can hold
-#[derive(Clone, Debug, PartialEq)]
+#[derive(Clone, Debug, PartialEq, Eq)]
 pub enum T123TpktChild {
     X224ConnectionRequest(X224ConnectionRequest),
     X224ConnectionConfirm(X224ConnectionConfirm),
@@ -95,7 +95,7 @@ pub enum T123TpktChild {
 // ================
 
 /// 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 {
     ConnectionConfirm = 0xd,
     ConnectionRequest = 0xe,
@@ -104,7 +104,7 @@ pub enum X224Type {
 
 /// x.224-spec, section 13.3
 // rdp-spec, section 2.2.1.1
-#[derive(Clone, Debug, PartialEq)]
+#[derive(Clone, Debug, PartialEq, Eq)]
 pub struct X224ConnectionRequest {
     pub cdt: u8,
     pub dst_ref: u16,
@@ -117,13 +117,13 @@ pub struct X224ConnectionRequest {
 }
 
 /// rdp-spec, section 2.2.1.1.1
-#[derive(Clone, Debug, PartialEq)]
+#[derive(Clone, Debug, PartialEq, Eq)]
 pub struct RdpCookie {
     pub mstshash: String,
 }
 
 /// 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 {
     NegotiationRequest = 0x1,
     NegotiationResponse = 0x2,
@@ -131,7 +131,7 @@ pub enum X224ConnectionRequestType {
 }
 
 /// rdp-spec, section 2.2.1.1.1
-#[derive(Clone, Debug, PartialEq)]
+#[derive(Clone, Debug, PartialEq, Eq)]
 pub struct NegotiationRequest {
     pub flags: NegotiationRequestFlags,
     pub protocols: ProtocolFlags,
@@ -148,7 +148,7 @@ bitflags! {
 }
 
 /// rdp-spec, section 2.2.1.1.1
-#[derive(Clone, Debug, FromPrimitive, PartialEq)]
+#[derive(Clone, Debug, FromPrimitive, PartialEq, Eq)]
 pub enum Protocol {
     ProtocolRdp = 0x0,
     ProtocolSsl = 0x1,
@@ -170,7 +170,7 @@ bitflags! {
 
 /// rdp-spec, section 2.2.1.2
 /// x.224-spec, section 13.3
-#[derive(Clone, Debug, PartialEq)]
+#[derive(Clone, Debug, PartialEq, Eq)]
 pub struct X224ConnectionConfirm {
     pub cdt: u8,
     pub dst_ref: u16,
@@ -181,14 +181,14 @@ pub struct X224ConnectionConfirm {
 }
 
 /// variants of a server negotiation
-#[derive(Clone, Debug, PartialEq)]
+#[derive(Clone, Debug, PartialEq, Eq)]
 pub enum NegotiationFromServer {
     Response(NegotiationResponse),
     Failure(NegotiationFailure),
 }
 
 /// rdp-spec, section 2.2.1.1.1
-#[derive(Clone, Debug, PartialEq)]
+#[derive(Clone, Debug, PartialEq, Eq)]
 pub struct NegotiationResponse {
     pub flags: NegotiationResponseFlags,
     pub protocol: Protocol,
@@ -207,13 +207,13 @@ bitflags! {
 }
 
 /// rdp-spec, section 2.2.1.1.1
-#[derive(Clone, Debug, PartialEq)]
+#[derive(Clone, Debug, PartialEq, Eq)]
 pub struct NegotiationFailure {
     pub code: NegotiationFailureCode,
 }
 
 /// rdp-spec, section 2.2.1.2.2
-#[derive(Clone, Debug, FromPrimitive, PartialEq)]
+#[derive(Clone, Debug, FromPrimitive, PartialEq, Eq)]
 pub enum NegotiationFailureCode {
     SslRequiredByServer = 0x1,
     SslNotAllowedByServer = 0x2,
@@ -226,13 +226,13 @@ pub enum NegotiationFailureCode {
 // ================
 
 /// x224-spec, section 13.7
-#[derive(Clone, Debug, PartialEq)]
+#[derive(Clone, Debug, PartialEq, Eq)]
 pub struct X223Data {
     pub child: X223DataChild,
 }
 
 /// variants that an x.223 data message can hold
-#[derive(Clone, Debug, PartialEq)]
+#[derive(Clone, Debug, PartialEq, Eq)]
 pub enum X223DataChild {
     McsConnectRequest(McsConnectRequest),
     McsConnectResponse(McsConnectResponse),
@@ -240,20 +240,20 @@ pub enum X223DataChild {
 }
 
 /// t.125-spec, section 7, part 2
-#[derive(Clone, Debug, PartialEq)]
+#[derive(Clone, Debug, PartialEq, Eq)]
 pub enum T125Type {
     T125TypeMcsConnectRequest = 0x65,  // 101
     T125TypeMcsConnectResponse = 0x66, // 102
 }
 
 /// rdp-spec, section 2.2.1.3.2
-#[derive(Clone, Debug, PartialEq)]
+#[derive(Clone, Debug, PartialEq, Eq)]
 pub struct McsConnectRequest {
     pub children: Vec<McsConnectRequestChild>,
 }
 
 /// variants that an mcs connection message can hold
-#[derive(Clone, Debug, PartialEq)]
+#[derive(Clone, Debug, PartialEq, Eq)]
 pub enum McsConnectRequestChild {
     CsClientCore(CsClientCoreData),
     CsNet(CsNet),
@@ -261,14 +261,14 @@ pub enum McsConnectRequestChild {
 }
 
 /// rdp-spec, section 2.2.1.3.1
-#[derive(Clone, Debug, FromPrimitive, PartialEq)]
+#[derive(Clone, Debug, FromPrimitive, PartialEq, Eq)]
 pub enum CsType {
     Core = 0xc001,
     Net = 0xc003,
 }
 
 /// rdp-spec, section 2.2.1.3.2
-#[derive(Clone, Debug, PartialEq)]
+#[derive(Clone, Debug, PartialEq, Eq)]
 pub struct CsClientCoreData {
     pub version: Option<RdpClientVersion>,
     pub desktop_width: u16,
@@ -300,7 +300,7 @@ pub struct CsClientCoreData {
 }
 
 /// 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)]
 pub enum RdpClientVersion {
     V4 = 0x80001,
@@ -316,14 +316,14 @@ pub enum RdpClientVersion {
 }
 
 /// 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 {
     RnsUdColor4Bpp = 0xca00,
     RnsUdColor8Bpp = 0xca01,
 }
 
 /// 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 {
     RnsUdSasDel = 0xaa03,
 }
@@ -331,7 +331,7 @@ pub enum SasSequence {
 // for keyboard layout, see windows::lcid_to_string
 
 /// 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 {
     KbXt = 0x1,
     KbIco = 0x2,
@@ -343,7 +343,7 @@ pub enum KeyboardType {
 }
 
 /// 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 {
     RnsUdColorNotProvided = 0x0,
     RnsUdColor4Bpp = 0xca00,
@@ -354,7 +354,7 @@ pub enum PostBeta2ColorDepth {
 }
 
 /// 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 {
     HighColorNotProvided = 0x0,
     HighColor4Bpp = 0x4,
@@ -394,7 +394,7 @@ bitflags! {
 }
 
 /// 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 {
     ConnectionHintNotProvided = 0x0,
     ConnectionHintModem = 0x1,
@@ -407,7 +407,7 @@ pub enum ConnectionHint {
 }
 
 /// 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 {
     OrientationLandscape = 0,
     OrientationPortrait = 90,          // 0x5a
@@ -416,21 +416,21 @@ pub enum DesktopOrientation {
 }
 
 /// rdp-spec, section 2.2.1.3.4
-#[derive(Clone, Debug, PartialEq)]
+#[derive(Clone, Debug, PartialEq, Eq)]
 pub struct CsNet {
     pub channels: Vec<String>,
 }
 
 /// generic structure
 /// cf. rdp-spec, section 2.2.1.3.4
-#[derive(Clone, Debug, PartialEq)]
+#[derive(Clone, Debug, PartialEq, Eq)]
 pub struct CsUnknown {
     pub typ: u16,
     pub data: Vec<u8>,
 }
 
 /// rdp-spec, section 2.2.1.4
-#[derive(Clone, Debug, PartialEq)]
+#[derive(Clone, Debug, PartialEq, Eq)]
 pub struct McsConnectResponse {}
 
 // ==================
index eff75e5e55f2ef667e4fc78908c97b4ef0cd9318..e931ed2368df55384c826f540f9d7fdc891fe4ff 100644 (file)
@@ -33,12 +33,12 @@ static mut ALPROTO_RDP: AppProto = ALPROTO_UNKNOWN;
 // transactions
 //
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct CertificateBlob {
     pub data: Vec<u8>,
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub enum RdpTransactionItem {
     X224ConnectionRequest(X224ConnectionRequest),
     X224ConnectionConfirm(X224ConnectionConfirm),
@@ -47,7 +47,7 @@ pub enum RdpTransactionItem {
     TlsCertificateChain(Vec<CertificateBlob>),
 }
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct RdpTransaction {
     pub id: u64,
     pub item: RdpTransactionItem,
@@ -105,7 +105,7 @@ pub extern "C" fn rs_rdp_tx_get_progress(
 // state
 //
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct RdpState {
     state_data: AppLayerStateData,
     next_id: u64,
index 2282d30231d1751483764d9e7f1e9c19e7a331c8..e1a3456040d81546674477dda8b1ac2833366111 100644 (file)
@@ -476,14 +476,14 @@ pub fn lcid_to_string<'a>(lcid: u32, default: &'a str) -> String {
 }
 
 /// Windows operating system type (build and suffix/pack)
-#[derive(Clone, Debug, PartialEq)]
+#[derive(Clone, Debug, PartialEq, Eq)]
 pub struct OperatingSystem {
     pub build: Build,
     pub suffix: Suffix,
 }
 
 // <https://en.wikipedia.org/wiki/Windows_NT#Releases>
-#[derive(Clone, Debug, FromPrimitive, PartialEq)]
+#[derive(Clone, Debug, FromPrimitive, PartialEq, Eq)]
 #[allow(non_camel_case_types)]
 pub enum Build {
     Other,
@@ -510,7 +510,7 @@ pub enum Build {
     Server2003 = 3790,
 }
 
-#[derive(Clone, Debug, PartialEq)]
+#[derive(Clone, Debug, PartialEq, Eq)]
 pub enum Suffix {
     Empty,
     Rtm,
index 4cc8d86e25950cc5e1bbd8ae3e5c9394e05c4f22..1f270f9fb8a24193963e0f6e2e134cfc4ff64a49 100644 (file)
@@ -57,7 +57,7 @@ pub struct Response {
     pub body_len: u16,
 }
 
-#[derive(PartialEq, Debug, Clone)]
+#[derive(PartialEq, Eq, Debug, Clone)]
 pub enum Method {
     Register,
     Custom(String),
index 6c9d9c47f5ec8644f5c0549cf13ba6ecd4d5f11b..c6289e7af83cdf20ebf2e8d6d10e387f37736128 100644 (file)
@@ -148,7 +148,7 @@ fn parse_secblob_spnego(blob: &[u8]) -> Option<SpnegoRequest>
     Some(s)
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct NtlmsspData {
     pub host: Vec<u8>,
     pub user: Vec<u8>,
index a454b444f3f7b7e13102659d0236d1b118fee2d7..3e4c183c2edcdf25ee55afa335a66c927181c397 100644 (file)
@@ -26,7 +26,7 @@ use nom7::number::streaming::{be_u16, le_u8, le_u16, le_u32, u16, u32};
 use nom7::sequence::tuple;
 use nom7::{Err, IResult};
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct DceRpcResponseRecord<'a> {
     pub data: &'a[u8],
 }
@@ -45,7 +45,7 @@ pub fn parse_dcerpc_response_record(i:&[u8], frag_len: u16 )
     Ok((i, record))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct DceRpcRequestRecord<'a> {
     pub opnum: 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))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct DceRpcBindIface<'a> {
     pub iface: &'a[u8],
     pub ver: u16,
@@ -108,7 +108,7 @@ pub fn parse_dcerpc_bind_iface_big(i: &[u8]) -> IResult<&[u8], DceRpcBindIface>
     Ok((i, res))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct DceRpcBindRecord<'a> {
     pub num_ctx_items: u8,
     pub ifaces: Vec<DceRpcBindIface<'a>>,
@@ -142,7 +142,7 @@ pub fn parse_dcerpc_bind_record_big(i: &[u8]) -> IResult<&[u8], DceRpcBindRecord
     Ok((i, record))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct DceRpcBindAckResult<'a> {
     pub ack_result: u16,
     pub ack_reason: u16,
@@ -164,7 +164,7 @@ pub fn parse_dcerpc_bindack_result(i: &[u8]) -> IResult<&[u8], DceRpcBindAckResu
     Ok((i, res))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct DceRpcBindAckRecord<'a> {
     pub num_results: u8,
     pub results: Vec<DceRpcBindAckResult<'a>>,
@@ -187,7 +187,7 @@ pub fn parse_dcerpc_bindack_record(i: &[u8]) -> IResult<&[u8], DceRpcBindAckReco
     Ok((i, record))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct DceRpcRecord<'a> {
     pub version_major: u8,
     pub version_minor: u8,
index 894896ce442cc701a561d5cb3c20d547fce34118..115d15269bb19641f89fb3d7e8cbd53c63d2b888 100644 (file)
@@ -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_KEEP_ALIVE:              u8 = 0x85;
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct NbssRecord<'a> {
     pub message_type: u8,
     pub length: u32,
index 0fbdd1792cc68cb79d6019906784d8c0723a5847..6026f7f217aec5b42ca8928e8d7d74e394562827 100644 (file)
@@ -24,7 +24,7 @@ use nom7::number::streaming::{le_u8, le_u16, le_u32};
 use nom7::sequence::tuple;
 use nom7::IResult;
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct NTLMSSPVersion {
     pub ver_major: u8,
     pub ver_minor: u8,
@@ -55,7 +55,7 @@ fn parse_ntlm_auth_version(i: &[u8]) -> IResult<&[u8], NTLMSSPVersion> {
     Ok((i, version))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct NTLMSSPAuthRecord<'a> {
     pub domain: &'a[u8],
     pub user: &'a[u8],
@@ -121,7 +121,7 @@ pub fn parse_ntlm_auth_record(i: &[u8]) -> IResult<&[u8], NTLMSSPAuthRecord> {
     Ok((i, record))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct NTLMSSPRecord<'a> {
     pub msg_type: u32,
     pub data: &'a[u8],
index 1472014e4d9fcc32d18f25a38061589273bdf25c..7eb245c3c5eb6430c1ae2443f765d3eb70105b3d 100644 (file)
@@ -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 wct: u8,
     pub andx_command: u8,
@@ -66,7 +66,7 @@ pub fn smb1_parse_andx_header(i: &[u8]) -> IResult<&[u8], SmbParamBlockAndXHeade
     Ok((i, hdr))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Smb1WriteRequestRecord<'a> {
     pub offset: u64,
     pub len: u32,
@@ -140,7 +140,7 @@ pub fn parse_smb1_write_and_close_request_record(i: &[u8]) -> IResult<&[u8], Smb
     Ok((i, record))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Smb1NegotiateProtocolResponseRecord<'a> {
     pub dialect_idx: u16,
     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 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 service: &'a[u8],
     pub nativefs: &'a[u8],
@@ -225,7 +225,7 @@ pub fn parse_smb_connect_tree_andx_response_record(i: &[u8])
     Ok((i, record))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct SmbRecordTreeConnectAndX<'a> {
     pub path: Vec<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))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct SmbRecordTransRequest<'a> {
     pub params: SmbRecordTransRequestParams,
     pub pipe: Option<SmbPipeProtocolRecord<'a>>,
@@ -254,7 +254,7 @@ pub struct SmbRecordTransRequest<'a> {
     pub data: SmbRecordTransRequestData<'a>,
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct SmbPipeProtocolRecord<'a> {
     pub function: u16,
     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 max_data_cnt: u16,
     param_cnt: u16,
@@ -314,7 +314,7 @@ pub fn parse_smb_trans_request_record_params(i: &[u8])
    Ok((i, (params, pipe)))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct SmbRecordTransRequestData<'a> {
     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 data_cnt: 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 sec_blob: &'a[u8],
 }
@@ -451,7 +451,7 @@ pub fn parse_smb_setup_andx_record(i: &[u8]) -> IResult<&[u8], SmbRecordSetupAnd
     Ok((i, record))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct SmbResponseRecordSetupAndX<'a> {
     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 fid: &'a[u8],
     pub size: u64,
@@ -519,7 +519,7 @@ pub fn parse_smb_read_andx_request_record(i: &[u8]) -> IResult<&[u8], SmbRequest
     Ok((i, record))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct SmbResponseReadAndXRecord<'a> {
     pub len: u32,
     pub data: &'a[u8],
@@ -553,7 +553,7 @@ pub fn parse_smb_read_andx_response_record(i: &[u8]) -> IResult<&[u8], SmbRespon
     Ok((i, record))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct SmbRequestRenameRecord {
     pub oldname: 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))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct SmbRequestCreateAndXRecord<> {
     pub disposition: 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))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Trans2RecordParamSetFileInfoDisposition<> {
     pub delete: bool,
 }
@@ -618,7 +618,7 @@ pub fn parse_trans2_request_data_set_file_info_disposition(i: &[u8])
     Ok((i, record))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Trans2RecordParamSetFileInfo<'a> {
     pub fid: &'a[u8],
     pub loi: u16,
@@ -631,7 +631,7 @@ pub fn parse_trans2_request_params_set_file_info(i: &[u8]) -> IResult<&[u8], Tra
     Ok((i, record))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Trans2RecordParamSetFileInfoRename<'a> {
     pub replace: bool,
     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))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Trans2RecordParamSetPathInfo<> {
     pub loi: u16,
     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))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Trans2RecordParamSetPathInfoRename<'a> {
     pub replace: bool,
     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))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct SmbRequestTrans2Record<'a> {
     pub subcmd: u16,
     pub setup_blob: &'a[u8],
@@ -726,7 +726,7 @@ pub fn parse_smb_trans2_request_record(i: &[u8]) -> IResult<&[u8], SmbRequestTra
     Ok((i, record))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct SmbResponseCreateAndXRecord<'a> {
     pub fid: &'a[u8],
     pub create_ts: SMBFiletime,
@@ -767,7 +767,7 @@ pub fn parse_smb_create_andx_response_record(i: &[u8]) -> IResult<&[u8], SmbResp
     Ok((i, record))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct SmbRequestCloseRecord<'a> {
     pub fid: &'a[u8],
 }
@@ -781,7 +781,7 @@ pub fn parse_smb1_close_request_record(i: &[u8]) -> IResult<&[u8], SmbRequestClo
     Ok((i, record))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct SmbVersion<> {
     pub version: u8,
 }
@@ -793,7 +793,7 @@ pub fn parse_smb_version(i: &[u8]) -> IResult<&[u8], SmbVersion> {
     Ok((i, version))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct SmbRecord<'a> {
     pub command: u8,
     pub is_dos_error: bool,
index f82b7ecf0e585a546badbb76d89dabecf403da42..63d0f07884eb83b1e7ee7ab9400231718c0cf0d8 100644 (file)
@@ -27,7 +27,7 @@ use nom7::{Err, IResult, Needed};
 const SMB2_FLAGS_SERVER_TO_REDIR: u32 = 0x0000_0001;
 const SMB2_FLAGS_ASYNC_COMMAND: u32 = 0x0000_0002;
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Smb2SecBlobRecord<'a> {
     pub data: &'a[u8],
 }
@@ -37,7 +37,7 @@ pub fn parse_smb2_sec_blob(i: &[u8]) -> IResult<&[u8], Smb2SecBlobRecord> {
     Ok((i, Smb2SecBlobRecord { data }))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Smb2RecordDir<> {
     pub request: bool,
 }
@@ -52,7 +52,7 @@ pub fn parse_smb2_record_direction(i: &[u8]) -> IResult<&[u8], Smb2RecordDir> {
     Ok((i, record))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Smb2Record<'a> {
     pub direction: u8,    // 0 req, 1 res
     pub header_len: u16,
@@ -129,7 +129,7 @@ pub fn parse_smb2_request_record(i: &[u8]) -> IResult<&[u8], Smb2Record> {
     Ok((i, record))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Smb2NegotiateProtocolRequestRecord<'a> {
     pub dialects_vec: Vec<u16>,
     pub client_guid: &'a[u8],
@@ -153,7 +153,7 @@ pub fn parse_smb2_request_negotiate_protocol(i: &[u8]) -> IResult<&[u8], Smb2Neg
     Ok((i, record))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Smb2NegotiateProtocolResponseRecord<'a> {
     pub dialect: u16,
     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 data: &'a[u8],
 }
@@ -215,7 +215,7 @@ pub fn parse_smb2_request_session_setup(i: &[u8]) -> IResult<&[u8], Smb2SessionS
     Ok((i, record))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Smb2TreeConnectRequestRecord<'a> {
     pub share_name: &'a[u8],
 }
@@ -230,7 +230,7 @@ pub fn parse_smb2_request_tree_connect(i: &[u8]) -> IResult<&[u8], Smb2TreeConne
     Ok((i, record))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Smb2TreeConnectResponseRecord<> {
     pub share_type: u8,
 }
@@ -245,7 +245,7 @@ pub fn parse_smb2_response_tree_connect(i: &[u8]) -> IResult<&[u8], Smb2TreeConn
     Ok((i, record))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Smb2CreateRequestRecord<'a> {
     pub disposition: u32,
     pub create_options: u32,
@@ -269,7 +269,7 @@ pub fn parse_smb2_request_create(i: &[u8]) -> IResult<&[u8], Smb2CreateRequestRe
     Ok((i, record))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Smb2IOCtlRequestRecord<'a> {
     pub is_pipe: bool,
     pub function: u32,
@@ -298,7 +298,7 @@ pub fn parse_smb2_request_ioctl(i: &[u8]) -> IResult<&[u8], Smb2IOCtlRequestReco
     Ok((i, record))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Smb2IOCtlResponseRecord<'a> {
     pub is_pipe: bool,
     pub guid: &'a[u8],
@@ -333,7 +333,7 @@ pub fn parse_smb2_response_ioctl(i: &[u8]) -> IResult<&[u8], Smb2IOCtlResponseRe
     Ok((i, record))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Smb2CloseRequestRecord<'a> {
     pub guid: &'a[u8],
 }
@@ -428,7 +428,7 @@ pub fn parse_smb2_request_setinfo(i: &[u8]) -> IResult<&[u8], Smb2SetInfoRequest
     Ok((i, record))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Smb2WriteRequestRecord<'a> {
     pub wr_len: u32,
     pub wr_offset: u64,
@@ -456,7 +456,7 @@ pub fn parse_smb2_request_write(i: &[u8]) -> IResult<&[u8], Smb2WriteRequestReco
     Ok((i, record))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Smb2ReadRequestRecord<'a> {
     pub rd_len: u32,
     pub rd_offset: u64,
@@ -480,7 +480,7 @@ pub fn parse_smb2_request_read(i: &[u8]) -> IResult<&[u8], Smb2ReadRequestRecord
     Ok((i, record))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Smb2ReadResponseRecord<'a> {
     pub len: u32,
     pub data: &'a[u8],
@@ -514,7 +514,7 @@ pub fn parse_smb2_response_read(i: &[u8]) -> IResult<&[u8], Smb2ReadResponseReco
     Ok((i, record))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Smb2CreateResponseRecord<'a> {
     pub guid: &'a[u8],
     pub create_ts: SMBFiletime,
@@ -550,7 +550,7 @@ pub fn parse_smb2_response_create(i: &[u8]) -> IResult<&[u8], Smb2CreateResponse
     Ok((i, record))
 }
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Smb2WriteResponseRecord<> {
     pub wr_cnt: u32,
 }
index 87f4926c10715aef8f8965b96c612ce150c61a34..287a5cf4b3eeaa4e7e6a5be01c6f5728b89ca7e9 100644 (file)
@@ -19,7 +19,7 @@ use nom7::bytes::streaming::{tag, take};
 use nom7::number::streaming::{le_u16, le_u32, le_u64};
 use nom7::IResult;
 
-#[derive(Debug,PartialEq)]
+#[derive(Debug,PartialEq, Eq)]
 pub struct Smb3TransformRecord<'a> {
     pub session_id: u64,
     pub enc_algo: u16,
index 3c2b79fa0b01ff0cfd05468bcff168329be937fe..bfad8c005a9d4c8dcad2fafb5566e61c8aadd835 100644 (file)
@@ -84,7 +84,7 @@ pub fn ssh_parse_line(i: &[u8]) -> IResult<&[u8], &[u8]> {
         )(i)
 }
 
-#[derive(PartialEq)]
+#[derive(PartialEq, Eq)]
 pub struct SshBanner<'a> {
     pub protover: &'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 }))
 }
 
-#[derive(PartialEq)]
+#[derive(PartialEq, Eq)]
 pub struct SshRecordHeader {
     pub pkt_len: u32,
     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 cookie: &'a [u8],
     pub kex_algs: &'a [u8],
index 1d6924ec7652b7d9ad699dd357eef3df093939e5..2ac42e11dbb8346adaac2fac15bd64aea58815e4 100644 (file)
@@ -38,7 +38,7 @@ pub enum SSHEvent {
 }
 
 #[repr(u8)]
-#[derive(Copy, Clone, PartialOrd, PartialEq)]
+#[derive(Copy, Clone, PartialOrd, PartialEq, Eq)]
 pub enum SSHConnectionState {
     SshStateInProgress = 0,
     SshStateBannerWaitEol = 1,
index 7716ec8ea36a04542d7d5990936500642aa227c5..b5453c2d339c9ab8f41b3897920b65129d38694b 100644 (file)
@@ -32,7 +32,7 @@ const DATA:         u8 = 3;
 const ACK:          u8 = 4;
 const ERROR:        u8 = 5;
 
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Eq)]
 pub struct TFTPTransaction {
     pub opcode : u8,
     pub filename : String,