diff options
| author | Adam <Adam@anope.org> | 2011-04-22 03:16:11 -0400 |
|---|---|---|
| committer | Adam <Adam@anope.org> | 2011-05-16 04:06:17 -0400 |
| commit | c8c23158a4ff74822d6c7d201dc53d879e3d91e8 (patch) | |
| tree | 4bc9ae029691d5e7c03ebc1481683a010b733844 /include/operserv.h | |
| parent | 1782ce260c5bc214ec0b2e39257ab1371b68ae9c (diff) | |
Moved the core pseudo clients out into their own modules
Diffstat (limited to 'include/operserv.h')
| -rw-r--r-- | include/operserv.h | 250 |
1 files changed, 0 insertions, 250 deletions
diff --git a/include/operserv.h b/include/operserv.h deleted file mode 100644 index f039b6107..000000000 --- a/include/operserv.h +++ /dev/null @@ -1,250 +0,0 @@ -/* OperServ support - * - * (C) 2008-2011 Anope Team - * Contact us at team@anope.org - * - * Please read COPYING and README for further details. - */ - -#ifndef OPERSERV_H -#define OPERSERV_H - -extern CoreExport std::vector<NewsItem *> News; -extern CoreExport std::vector<std::bitset<32> > DefCon; -extern CoreExport bool DefConModesSet; -extern CoreExport Flags<ChannelModeName, CMODE_END * 2> DefConModesOn; -extern CoreExport Flags<ChannelModeName, CMODE_END * 2> DefConModesOff; -extern CoreExport std::map<ChannelModeName, Anope::string> DefConModesOnParams; - -class XLineManager; -extern CoreExport XLineManager *SGLine; -extern CoreExport XLineManager *SZLine; -extern CoreExport XLineManager *SQLine; -extern CoreExport XLineManager *SNLine; - -extern CoreExport bool SetDefConParam(ChannelModeName, const Anope::string &); -extern CoreExport bool GetDefConParam(ChannelModeName, Anope::string &); -extern CoreExport void UnsetDefConParam(ChannelModeName); -extern CoreExport bool CheckDefCon(DefconLevel Level); -extern CoreExport bool CheckDefCon(int level, DefconLevel Level); -extern CoreExport void AddDefCon(int level, DefconLevel Level); -extern CoreExport void DelDefCon(int level, DefconLevel Level); - -extern CoreExport void os_init(); - -extern CoreExport void oper_global(const Anope::string &nick, const char *fmt, ...); -extern CoreExport void server_global(const Server *s, const Anope::string &message); - -enum XLineType -{ - X_SNLINE, - X_SQLINE, - X_SZLINE -}; - -class CoreExport XLine -{ - public: - Anope::string Mask; - Anope::string By; - time_t Created; - time_t Expires; - Anope::string Reason; - - XLine(const Anope::string &mask, const Anope::string &reason = ""); - - XLine(const Anope::string &mask, const Anope::string &by, const time_t expires, const Anope::string &reason); - - Anope::string GetNick() const; - Anope::string GetUser() const; - Anope::string GetHost() const; -}; - -class CoreExport XLineManager -{ - private: - /* List of XLine managers we check users against in XLineManager::CheckAll */ - static std::list<XLineManager *> XLineManagers; - - protected: - /* List of XLines in this XLineManager */ - std::vector<XLine *> XLines; - public: - /** Constructor - */ - XLineManager(); - - /** Destructor - */ - virtual ~XLineManager(); - - /** Register a XLineManager, places it in XLineManagers for use in XLineManager::CheckAll - * It is important XLineManagers are registered in the proper order. Eg, if you had one akilling - * clients and one handing them free olines, you would want the akilling one first. This way if a client - * matches an entry on both of the XLineManagers, they would be akilled. - * @param xlm THe XLineManager - */ - static void RegisterXLineManager(XLineManager *xlm); - - /** Unregister a XLineManager - * @param xlm The XLineManager - */ - static void UnregisterXLineManager(XLineManager *xlm); - - /** Check a user against all known XLineManagers - * Wparam u The user - * @return A pair of the XLineManager the user was found in and the XLine they matched, both may be NULL for no match - */ - static std::pair<XLineManager *, XLine *> CheckAll(User *u); - - /** Get the number of XLines in this XLineManager - * @return The number of XLines - */ - size_t GetCount() const; - - /** Get the XLine vector - * @return The vector - */ - const std::vector<XLine *> &GetList() const; - - /** Add an entry to this XLineManager - * @param x The entry - */ - void AddXLine(XLine *x); - - /** Delete an entry from this XLineManager - * @param x The entry - * @return true if the entry was found and deleted, else false - */ - bool DelXLine(XLine *x); - - /** Gets an entry by index - * @param index The index - * @return The XLine, or NULL if the index is out of bounds - */ - XLine *GetEntry(unsigned index); - - /** Clear the XLine vector - */ - void Clear(); - - /** Add an entry to this XLine Manager - * @param bi The bot error replies should be sent from - * @param u The user adding the XLine - * @param mask The mask of the XLine - * @param expires When this should expire - * @param reaosn The reason - * @return A pointer to the XLine - */ - virtual XLine *Add(BotInfo *bi, User *u, const Anope::string &mask, time_t expires, const Anope::string &reason); - - private: - /** Delete an XLine, eg, remove it from the IRCd. - * @param x The xline - */ - virtual void Del(XLine *x); - - public: - /** Checks if a mask can/should be added to the XLineManager - * @param mask The mask - * @param expires When the mask would expire - * @return A pair of int and XLine*. - * 1 - Mask already exists - * 2 - Mask already exists, but the expiry time was changed - * 3 - Mask is already covered by another mask - * In each case the XLine it matches/is covered by is returned in XLine* - */ - std::pair<int, XLine *> CanAdd(const Anope::string &mask, time_t expires); - - /** Checks if this list has an entry - * @param mask The mask - * @return The XLine the user matches, or NULL - */ - XLine *HasEntry(const Anope::string &mask); - - /** Check a user against all of the xlines in this XLineManager - * @param u The user - * @return The xline the user marches, if any. Also calls OnMatch() - */ - virtual XLine *Check(User *u); - - /** Called when a user matches a xline in this XLineManager - * @param u The user - * @param x The XLine they match - */ - virtual void OnMatch(User *u, XLine *x); - - /** Called when an XLine expires - * @param x The xline - */ - virtual void OnExpire(XLine *x); - - /** Called to send an XLine to the IRCd - * @param u The user, if we know it - * @param x The xline - */ - virtual void Send(User *u, XLine *x) = 0; -}; - -/* This is for AKILLS */ -class SGLineManager : public XLineManager -{ - public: - XLine *Add(BotInfo *bi, User *u, const Anope::string &mask, time_t expires, const Anope::string &reason); - - void Del(XLine *x); - - void OnMatch(User *u, XLine *x); - - void OnExpire(XLine *x); - - void Send(User *u, XLine *x); -}; - -class SNLineManager : public XLineManager -{ - public: - XLine *Add(BotInfo *bi, User *u, const Anope::string &mask, time_t expires, const Anope::string &reason); - - void Del(XLine *x); - - void OnMatch(User *u, XLine *x); - - void OnExpire(XLine *x); - - void Send(User *u, XLine *x); - - XLine *Check(User *u); -}; - -class SQLineManager : public XLineManager -{ - public: - XLine *Add(BotInfo *bi, User *u, const Anope::string &mask, time_t expires, const Anope::string &reason); - - void Del(XLine *x); - - void OnMatch(User *u, XLine *x); - - void OnExpire(XLine *x); - - void Send(User *u, XLine *x); - - static bool Check(Channel *c); -}; - -class SZLineManager : public XLineManager -{ - public: - XLine *Add(BotInfo *bi, User *u, const Anope::string &mask, time_t expires, const Anope::string &reason); - - void Del(XLine *x); - - void OnMatch(User *u, XLine *x); - - void OnExpire(XLine *x); - - void Send(User *u, XLine *x); -}; - -#endif // OPERSERV_H |
