diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2007-07-25 17:21:30 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2007-07-25 17:21:30 +0000 |
commit | 89bc1282b9e1e2bf9eccacae8f1dc2b5f9ade9b7 (patch) | |
tree | ff31b00e1a0425f0aa2ae4e41f873686aa1d2887 | |
parent | 914534be62976d97dd387fa3412e7b0cda002c7e (diff) |
Turn IsIdent into a functor
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7568 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r-- | include/inspircd.h | 15 | ||||
-rw-r--r-- | src/helperfuncs.cpp | 2 | ||||
-rw-r--r-- | src/inspircd.cpp | 5 |
3 files changed, 18 insertions, 4 deletions
diff --git a/include/inspircd.h b/include/inspircd.h index ba6c2b174..c2ea3f048 100644 --- a/include/inspircd.h +++ b/include/inspircd.h @@ -248,6 +248,15 @@ class CoreExport IsNickHandler : public HandlerBase1<bool, const char*> virtual bool Call(const char*); }; +class CoreExport IsIdentHandler : public HandlerBase1<bool, const char*> +{ + InspIRCd* Server; + public: + IsIdentHandler(InspIRCd* Srv) : Server(Srv) { } + virtual ~IsIdentHandler() { } + virtual bool Call(const char*); +}; + /* Forward declaration - required */ class XLineManager; @@ -389,7 +398,9 @@ class CoreExport InspIRCd : public classbase /**** Functors ****/ - IsNickHandler HandleIsNick; + IsNickHandler HandleIsNick; + + IsIdentHandler HandleIsIdent; /** InspSocket classes pending deletion after being closed. * We don't delete these immediately as this may cause a segmentation fault. @@ -868,7 +879,7 @@ class CoreExport InspIRCd : public classbase * @param An ident to verify * @return True if the ident is valid */ - bool IsIdent(const char* n); + caller1<bool, const char*> IsIdent; /** Find a username by their file descriptor. * It is preferred to use this over directly accessing the fd_ref_table array. diff --git a/src/helperfuncs.cpp b/src/helperfuncs.cpp index 8e6627d1f..b5b2a095b 100644 --- a/src/helperfuncs.cpp +++ b/src/helperfuncs.cpp @@ -418,7 +418,7 @@ bool IsNickHandler::Call(const char* n) } /* return true for good ident, false else */ -bool InspIRCd::IsIdent(const char* n) +bool IsIdentHandler::Call(const char* n) { if (!n || !*n) return false; diff --git a/src/inspircd.cpp b/src/inspircd.cpp index 09f1e8685..dea2f0a58 100644 --- a/src/inspircd.cpp +++ b/src/inspircd.cpp @@ -394,7 +394,10 @@ void InspIRCd::WritePID(const std::string &filename) InspIRCd::InspIRCd(int argc, char** argv) : ModCount(0), GlobalCulls(this), - HandleIsNick(this), IsNick(&HandleIsNick) + HandleIsNick(this), + HandleIsIdent(this), + IsNick(&HandleIsNick), + IsIdent(&HandleIsIdent) { int found_ports = 0; FailedPortList pl; |