#include "socketengine.h"
#include "snomasks.h"
#include "filelogger.h"
-#include "caller.h"
#include "modules.h"
#include "threadengine.h"
#include "configreader.h"
DEFINE_HANDLER2(IsChannelHandler, bool, const char*, size_t);
DEFINE_HANDLER1(IsSIDHandler, bool, const std::string&);
DEFINE_HANDLER1(RehashHandler, void, const std::string&);
+DEFINE_HANDLER3(OnCheckExemptionHandler, ModResult, User*, Channel*, const std::string&);
/** The main class of the irc server.
* This class contains instances of all the other classes in this software.
IsNickHandler HandleIsNick;
IsIdentHandler HandleIsIdent;
FloodQuitUserHandler HandleFloodQuitUser;
+ OnCheckExemptionHandler HandleOnCheckExemption;
IsChannelHandler HandleIsChannel;
IsSIDHandler HandleIsSID;
RehashHandler HandleRehash;
*/
std::string GetUID();
+ static const char LogHeader[];
+
/** Find a user in the UUID hash
* @param nick The nickname to find
* @return A pointer to the user, or NULL if the user does not exist
/** Returns the full version string of this ircd
* @return The version string
*/
- std::string GetVersionString();
+ std::string GetVersionString(bool rawversion = false);
/** Attempt to write the process id to a given file
* @param filename The PID file to attempt to write to
*/
caller1<void, User*> FloodQuitUser;
+ /** Called to check whether a channel restriction mode applies to a user
+ * @param User that is attempting some action
+ * @param Channel that the action is being performed on
+ * @param Action name
+ */
+ caller3<ModResult, User*, Channel*, const std::string&> OnCheckExemption;
+
/** Restart the server.
* This function will not return. If an error occurs,
* it will throw an instance of CoreException.