X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Finspircd.h;h=7e9007a1dc3687061ba0c4b02b35e4c047f1393f;hb=4aa27e75af8da0a5bc2e35f931f0165339f5f289;hp=52809249925afcfecfe4313e8481103d01b72200;hpb=3b3cb845602bbaa3935f736785a53724750230dc;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/inspircd.h b/include/inspircd.h index 528092499..7e9007a1d 100644 --- a/include/inspircd.h +++ b/include/inspircd.h @@ -68,7 +68,6 @@ struct fakederef #include "convto.h" #include "dynref.h" #include "consolecolors.h" -#include "caller.h" #include "cull_list.h" #include "extensible.h" #include "fileutils.h" @@ -165,9 +164,6 @@ class serverstats } }; -DEFINE_HANDLER2(GenRandomHandler, void, char*, size_t); -DEFINE_HANDLER1(IsChannelHandler, bool, const std::string&); - /** The main class of the irc server. * This class contains instances of all the other classes in this software. * Amongst other things, it contains a ModeParser, a DNS object, a CommandParser @@ -210,10 +206,6 @@ class CoreExport InspIRCd /** Actions that must happen outside of the current call stack */ ActionList AtomicActions; - /**** Functors ****/ - IsChannelHandler HandleIsChannel; - GenRandomHandler HandleGenRandom; - /** Globally accessible fake user record. This is used to force mode changes etc across s2s, etc.. bit ugly, but.. better than how this was done in 1.1 * Reason for it: * kludge alert! @@ -341,7 +333,14 @@ class CoreExport InspIRCd unsigned long GenRandomInt(unsigned long max); /** Fill a buffer with random bits */ - caller2 GenRandom; + TR1NS::function GenRandom; + + /** Fills the output buffer with the specified number of random characters. + * This is the default function for InspIRCd::GenRandom. + * @param output The output buffer to store random characters in. + * @param max The maximum number of random characters to put in the buffer. + */ + static void DefaultGenRandom(char* output, size_t max); /** Bind all ports specified in the configuration file. * @return The number of ports bound without error @@ -370,11 +369,15 @@ class CoreExport InspIRCd */ chan_hash& GetChans() { return chanlist; } - /** Return true if a channel name is valid - * @param chname A channel name to verify - * @return True if the name is valid - */ - caller1 IsChannel; + /** Determines whether an channel name is valid. */ + TR1NS::function IsChannel; + + /** Determines whether a channel name is valid according to the RFC 1459 rules. + * This is the default function for InspIRCd::IsChannel. + * @param nick The channel name to validate. + * @return True if the channel name is valid according to RFC 1459 rules; otherwise, false. + */ + static bool DefaultIsChannel(const std::string& channel); /** Return true if str looks like a server ID * @param sid string to check against