Turn IsIdent into a functor

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7568 e03df62e-2008-0410-955e-edbf42e46eb7
This commit is contained in:
brain 2007-07-25 17:21:30 +00:00
parent 914534be62
commit 89bc1282b9
3 changed files with 18 additions and 4 deletions

View File

@ -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.

View File

@ -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;

View File

@ -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;