From 1ff7a7c1f1cee2dfe26a0a72026176202e2e4e6a Mon Sep 17 00:00:00 2001 From: Adam Date: Wed, 13 Mar 2013 14:40:49 -0500 Subject: Refactor mask/entry code, allow full matching (against users real host/ip) if their displayed host is their real real host. Also match against cloaked host even if full matching is not being done --- include/modes.h | 20 +++----------------- include/sockets.h | 4 ++-- 2 files changed, 5 insertions(+), 19 deletions(-) (limited to 'include') diff --git a/include/modes.h b/include/modes.h index 4b207fa44..a9957e332 100644 --- a/include/modes.h +++ b/include/modes.h @@ -393,28 +393,14 @@ class CoreExport ModeManager static void UpdateDefaultMLock(ServerConfig *config); }; -/** Entry flags - */ -enum EntryType -{ - ENTRYTYPE_CIDR, - ENTRYTYPE_NICK_WILD, - ENTRYTYPE_NICK, - ENTRYTYPE_USER_WILD, - ENTRYTYPE_USER, - ENTRYTYPE_HOST_WILD, - ENTRYTYPE_HOST -}; - /** Represents a mask set on a channel (b/e/I) */ class CoreExport Entry { Anope::string name; - public: - std::set types; - unsigned char cidr_len; Anope::string mask; + public: + unsigned short cidr_len; Anope::string nick, user, host; /** Constructor @@ -426,7 +412,7 @@ class CoreExport Entry /** Get the banned mask for this entry * @return The mask */ - const Anope::string GetMask(); + const Anope::string GetMask() const; /** Check if this entry matches a user * @param u The user diff --git a/include/sockets.h b/include/sockets.h index 8fc675614..0e490ac24 100644 --- a/include/sockets.h +++ b/include/sockets.h @@ -85,12 +85,12 @@ class CoreExport cidr { sockaddrs addr; Anope::string cidr_ip; - unsigned char cidr_len; + unsigned short cidr_len; public: cidr(const Anope::string &ip); cidr(const Anope::string &ip, unsigned char len); Anope::string mask() const; - bool match(sockaddrs &other); + bool match(const sockaddrs &other); bool operator<(const cidr &other) const; bool operator==(const cidr &other) const; -- cgit