Fix clang-tidy performance-enum-size warnings in headers

This commit is contained in:
Tim Wojtulewicz 2025-06-09 17:06:52 -07:00
parent 89ac0cb418
commit f386deba94
76 changed files with 184 additions and 136 deletions

View file

@ -20,7 +20,7 @@ namespace analyzer::bittorrent {
namespace detail {
enum BTT_States {
enum BTT_States : uint8_t {
BTT_REQ_GET,
BTT_REQ_HEADER,
BTT_REQ_DONE,
@ -32,9 +32,15 @@ enum BTT_States {
};
// "benc" = Bencode ("Bee-Encode"), per http://en.wikipedia.org/wiki/Bencode
enum BTT_BencTypes { BENC_TYPE_INT = 0, BENC_TYPE_STR = 1, BENC_TYPE_DIR = 2, BENC_TYPE_LIST = 3, BENC_TYPE_NONE = 10 };
enum BTT_BencTypes : uint8_t {
BENC_TYPE_INT = 0,
BENC_TYPE_STR = 1,
BENC_TYPE_DIR = 2,
BENC_TYPE_LIST = 3,
BENC_TYPE_NONE = 10
};
enum BTT_BencStates {
enum BTT_BencStates : uint8_t {
BENC_STATE_EMPTY,
BENC_STATE_INT1,
BENC_STATE_INT2,

View file

@ -7,7 +7,7 @@
namespace zeek::analyzer::dns {
namespace detail {
enum DNS_Opcode {
enum DNS_Opcode : uint8_t {
DNS_OP_QUERY = 0, ///< standard query
DNS_OP_IQUERY = 1, ///< reverse query
@ -22,16 +22,17 @@ enum DNS_Opcode {
NETBIOS_REFRESH = 8,
};
enum DNS_Code {
DNS_CODE_OK = 0, ///< no error
DNS_CODE_FORMAT_ERR = 1, ///< format error
DNS_CODE_SERVER_FAIL = 2, ///< server failure
DNS_CODE_NAME_ERR = 3, ///< no such domain
DNS_CODE_NOT_IMPL = 4, ///< not implemented
DNS_CODE_REFUSED = 5, ///< refused
enum DNS_Code : uint16_t {
DNS_CODE_OK = 0, ///< no error
DNS_CODE_FORMAT_ERR = 1, ///< format error
DNS_CODE_SERVER_FAIL = 2, ///< server failure
DNS_CODE_NAME_ERR = 3, ///< no such domain
DNS_CODE_NOT_IMPL = 4, ///< not implemented
DNS_CODE_REFUSED = 5, ///< refused
DNS_CODE_RESERVED = 65535, ///< Force clang-tidy to accept this enum being 16 bits
};
enum RR_Type {
enum RR_Type : uint16_t {
TYPE_A = 1, ///< host address
TYPE_NS = 2, ///< authoritative name server
TYPE_CNAME = 5, ///< canonical name
@ -80,10 +81,13 @@ enum RR_Type {
TYPE_BINDS = 65534, ///< Bind9's Private Type Rec for signaling state of signing process
};
#define DNS_CLASS_IN 1
#define DNS_CLASS_ANY 255
enum DNS_Class : uint16_t {
DNS_CLASS_IN = 1,
DNS_CLASS_ANY = 255,
DNS_CLASS_RESERVED = 65535, ///< Force clang-tidy to accept this enum being 16 bits
};
enum DNS_AnswerType {
enum DNS_AnswerType : uint8_t {
DNS_QUESTION,
DNS_ANSWER,
DNS_AUTHORITY,
@ -92,7 +96,7 @@ enum DNS_AnswerType {
// https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml
// DNS EDNS0 Option Codes (OPT)
enum EDNS_OPT_Type {
enum EDNS_OPT_Type : uint16_t {
TYPE_LLQ = 1, ///< https://www.iana.org/go/draft-sekar-dns-llq-06
TYPE_UL = 2, ///< http://files.dns-sd.org/draft-sekar-dns-ul.txt
TYPE_NSID = 3, ///< RFC5001
@ -112,7 +116,7 @@ enum EDNS_OPT_Type {
TYPE_DEVICE_ID = 26946 ///< https://docs.umbrella.com/developer/networkdevices-api/identifying-dns-traffic2
};
enum DNSSEC_Algo {
enum DNSSEC_Algo : uint8_t {
reserved0 = 0,
RSA_MD5 = 1, ///< [RFC2537] NOT RECOMMENDED
Diffie_Hellman = 2, ///< [RFC2539]
@ -134,7 +138,7 @@ enum DNSSEC_Algo {
reserved255 = 255,
};
enum DNSSEC_Digest {
enum DNSSEC_Digest : uint8_t {
reserved = 0,
SHA1 = 1, ///< [RFC3110] MANDATORY
SHA256 = 2,
@ -144,7 +148,7 @@ enum DNSSEC_Digest {
///< all keys are defined in RFC draft
///< https://datatracker.ietf.org/doc/html/draft-ietf-dnsop-svcb-https-07#section-14.3.2
enum SVCPARAM_Key {
enum SVCPARAM_Key : uint8_t {
mandatory = 0,
alpn = 1,
no_default_alpn = 2,
@ -392,7 +396,7 @@ protected:
bool is_netbios;
};
enum TCP_DNS_state {
enum TCP_DNS_state : uint8_t {
DNS_LEN_HI, ///< looking for the high-order byte of the length
DNS_LEN_LO, ///< looking for the low-order byte of the length
DNS_MESSAGE_BUFFER, ///< building up the message in the buffer

View file

@ -15,7 +15,7 @@
namespace zeek::analyzer::http {
enum CHUNKED_TRANSFER_STATE {
enum CHUNKED_TRANSFER_STATE : uint8_t {
NON_CHUNKED_TRANSFER,
BEFORE_CHUNK,
EXPECT_CHUNK_SIZE,
@ -59,7 +59,7 @@ protected:
int expect_body;
int64_t body_length;
int64_t header_length;
enum { IDENTITY, GZIP, COMPRESS, DEFLATE } encoding;
enum : uint8_t { IDENTITY, GZIP, COMPRESS, DEFLATE } encoding;
analyzer::zip::ZIP_Analyzer* zip;
bool deliver_body;
bool is_partial_content;
@ -81,7 +81,7 @@ protected:
void SubmitAllHeaders() override;
};
enum {
enum : uint8_t {
HTTP_BODY_NOT_EXPECTED,
HTTP_BODY_EXPECTED,
HTTP_BODY_MAYBE,

View file

@ -16,11 +16,11 @@ namespace irc {
* \brief Main class for analyzing IRC traffic.
*/
class IRC_Analyzer final : public analyzer::tcp::TCP_ApplicationAnalyzer {
enum {
enum : uint8_t {
WAIT_FOR_REGISTRATION,
REGISTERED,
};
enum {
enum : uint8_t {
NO_ZIP,
ACCEPT_ZIP,
ZIP_LOADED,

View file

@ -6,7 +6,7 @@
namespace zeek::analyzer::login {
enum login_state {
enum login_state : uint8_t {
LOGIN_STATE_AUTHENTICATE, // trying to authenticate
LOGIN_STATE_LOGGED_IN, // successful authentication
LOGIN_STATE_SKIP, // skip any further processing

View file

@ -9,7 +9,7 @@ namespace zeek::analyzer::login {
class Rsh_Analyzer;
enum rsh_state {
enum rsh_state : uint8_t {
RSH_FIRST_NULL, // waiting to see first NUL
RSH_CLIENT_USER_NAME, // scanning client user name up to NUL
RSH_SERVER_USER_NAME, // scanning server user name up to NUL

View file

@ -9,7 +9,7 @@ namespace zeek::analyzer::login {
class Rlogin_Analyzer;
enum rlogin_state {
enum rlogin_state : uint8_t {
RLOGIN_FIRST_NULL, // waiting to see first NUL
RLOGIN_CLIENT_USER_NAME, // scanning client user name up to NUL
RLOGIN_SERVER_USER_NAME, // scanning server user name up to NUL

View file

@ -35,14 +35,14 @@ namespace analyzer::mime {
#define CR '\015'
#define LF '\012'
enum MIME_CONTENT_TYPE {
enum MIME_CONTENT_TYPE : uint8_t {
CONTENT_TYPE_MULTIPART,
CONTENT_TYPE_MESSAGE,
CONTENT_TYPE_TEXT,
CONTENT_TYPE_OTHER, // image | audio | video | application | <other>
};
enum MIME_EVENT_TYPE {
enum MIME_EVENT_TYPE : uint8_t {
MIME_EVENT_ILLEGAL_FORMAT,
MIME_EVENT_ILLEGAL_ENCODING,
MIME_EVENT_CONTENT_GAP,

View file

@ -7,7 +7,7 @@
namespace zeek::analyzer::netbios_ssn {
namespace detail {
enum NetbiosSSN_Opcode {
enum NetbiosSSN_Opcode : uint8_t {
NETBIOS_SSN_MSG = 0x0,
NETBIOS_DGM_DIRECT_UNIQUE = 0x10,
NETBIOS_DGM_DIRECT_GROUP = 0x11,
@ -59,7 +59,7 @@ struct NetbiosDGM_RawMsgHdr {
uint16_t offset;
};
enum NetbiosSSN_State {
enum NetbiosSSN_State : uint8_t {
NETBIOS_SSN_TYPE, // looking for type field
NETBIOS_SSN_FLAGS, // looking for flag field
NETBIOS_SSN_LEN_HI, // looking for high-order byte of length

View file

@ -73,7 +73,7 @@ protected:
void PIA_DeliverPacket(int len, const u_char* data, bool is_orig, uint64_t seq, const IP_Hdr* ip, int caplen,
bool clear_state);
enum State { INIT, BUFFERING, MATCHING_ONLY, SKIPPING } state;
enum State : uint8_t { INIT, BUFFERING, MATCHING_ONLY, SKIPPING } state;
// Buffers one chunk of data. Used both for packet payload (incl.
// sequence numbers for TCP) and chunks of a reassembled stream.

View file

@ -19,11 +19,11 @@
namespace zeek::analyzer::pop3 {
namespace detail {
enum POP3_Cmd {
enum POP3_Cmd : uint8_t {
#include "POP3_cmd.def"
};
enum POP3_MasterState {
enum POP3_MasterState : uint8_t {
POP3_START,
POP3_AUTHORIZATION,
POP3_TRANSACTION,
@ -31,7 +31,7 @@ enum POP3_MasterState {
POP3_FINISHED,
};
enum POP3_State {
enum POP3_State : uint8_t {
START,
USER,
PASS,
@ -57,7 +57,7 @@ enum POP3_State {
END,
};
enum POP3_SubState {
enum POP3_SubState : uint8_t {
POP3_OK,
POP3_WOK,
};

View file

@ -1,12 +1,12 @@
refine connection RDPEUDP_Conn += {
%member{
enum RDPEUDP_STATE {
enum RDPEUDP_STATE : uint8_t {
NEED_SYN = 0x1,
NEED_SYNACK = 0x2,
NED_ACK = 0x3,
ESTABLISHED = 0x4,
};
enum RDPUDP_VERSION_INFO_FLAG {
enum RDPUDP_VERSION_INFO_FLAG : uint16_t {
RDPUDP_PROTOCOL_VERSION_1 = 0x0001,
RDPUDP_PROTOCOL_VERSION_2 = 0x0002,
RDPUDP_PROTOCOL_VERSION_3 = 0x0101

View file

@ -69,7 +69,7 @@ refine flow RFB_Flow += {
refine connection RFB_Conn += {
%member{
enum ServerState {
enum ServerState : uint8_t {
SERVER_VERSION = 0,
SERVER_AUTH_TYPE = 1,
SERVER_AUTH_TYPE37 = 2,
@ -84,7 +84,7 @@ refine connection RFB_Conn += {
SERVER_INVALID =100,
};
enum ClientState {
enum ClientState : uint8_t {
CLIENT_VERSION = 0,
CLIENT_AUTH_SELECTION = 1,
CLIENT_AUTH_VNC_RESPONSE = 2,

View file

@ -7,17 +7,17 @@
namespace zeek::analyzer::rpc {
namespace detail {
enum {
enum : uint8_t {
RPC_CALL = 0,
RPC_REPLY = 1,
};
enum {
enum : uint8_t {
RPC_MSG_ACCEPTED = 0,
RPC_MSG_DENIED = 1,
};
enum {
enum : uint8_t {
RPC_SUCCESS = 0,
RPC_PROG_UNAVAIL = 1,
RPC_PROG_MISMATCH = 2,
@ -26,12 +26,12 @@ enum {
RPC_SYSTEM_ERR = 5,
};
enum {
enum : uint8_t {
RPC_MISMATCH = 0,
RPC_AUTH_ERROR = 1,
};
enum {
enum : uint8_t {
RPC_AUTH_BADCRED = 1,
RPC_AUTH_REJECTEDCRED = 2,
RPC_AUTH_BADVERF = 3,
@ -39,7 +39,7 @@ enum {
RPC_AUTH_TOOWEAK = 5,
};
enum {
enum : uint8_t {
RPC_AUTH_NULL = 0,
RPC_AUTH_UNIX = 1,
RPC_AUTH_SHORT = 2,
@ -196,14 +196,14 @@ public:
~Contents_RPC() override = default;
protected:
enum state_t {
enum state_t : uint8_t {
WAIT_FOR_MESSAGE,
WAIT_FOR_MARKER,
WAIT_FOR_DATA,
WAIT_FOR_LAST_DATA,
};
enum resync_state_t {
enum resync_state_t : uint8_t {
NEED_RESYNC,
RESYNC_WAIT_FOR_MSG_START,
RESYNC_WAIT_FOR_FULL_MSG,

View file

@ -42,7 +42,7 @@ struct BDATCmd parse_bdat_arg(int length, const char* arg);
*
* Helper class to avoid true/false parameters.
*/
enum class ChunkType {
enum class ChunkType : uint8_t {
None,
Intermediate,
Last,

View file

@ -16,12 +16,12 @@ namespace detail {
class SMTP_BDAT_Analyzer;
enum SMTP_Cmd {
enum SMTP_Cmd : uint8_t {
#include "SMTP_cmd.def"
};
// State is updated on every SMTP reply.
enum SMTP_State {
enum SMTP_State : uint8_t {
SMTP_CONNECTED, // 0: before the opening message
SMTP_INITIATED, // 1: after opening message 220, EHLO/HELO expected
SMTP_NOT_AVAILABLE, // 2: after opening message 554, etc.

View file

@ -18,7 +18,7 @@ namespace analyzer::tcp {
class TCP_Reassembler;
enum EndpointState {
enum EndpointState : uint8_t {
TCP_ENDPOINT_INACTIVE, // no SYN (or other packets) seen for this side
TCP_ENDPOINT_SYN_SENT, // SYN seen, but no ack
TCP_ENDPOINT_SYN_ACK_SENT, // SYN ack seen, no initial SYN

View file

@ -22,7 +22,7 @@ namespace tcp {
class TCP_Reassembler final : public Reassembler {
public:
enum Type {
enum Type : uint8_t {
Direct, // deliver to destination analyzer itself
Forward, // forward to destination analyzer's children
};

View file

@ -10,7 +10,7 @@ namespace zeek::analyzer::zip {
class ZIP_Analyzer final : public analyzer::tcp::TCP_SupportAnalyzer {
public:
enum Method { GZIP, DEFLATE };
enum Method : uint8_t { GZIP, DEFLATE };
ZIP_Analyzer(Connection* conn, bool orig, Method method = GZIP);
~ZIP_Analyzer() override;
@ -20,7 +20,7 @@ public:
void DeliverStream(int len, const u_char* data, bool orig) override;
protected:
enum { NONE, ZIP_OK, ZIP_FAIL };
enum : uint8_t { NONE, ZIP_OK, ZIP_FAIL };
z_stream* zip;
int zip_status;
Method method;