X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Finspircd.h;h=665effb6187c16f20e9f76456899b1e225cf3023;hb=1eae3c2ad42df386967afa42ed13cc95e7a0dd91;hp=a933e5c41e59315db2455b01b9829dc885492e10;hpb=d43120ca4a68006811b3645d0d9065ac098ddc65;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/inspircd.h b/include/inspircd.h index a933e5c41..665effb61 100644 --- a/include/inspircd.h +++ b/include/inspircd.h @@ -25,6 +25,12 @@ #undef ERROR #endif +#ifdef __GNUC__ +#define CUSTOM_PRINTF(STRING, FIRST) __attribute__((format(printf, STRING, FIRST))) +#else +#define CUSTOM_PRINTF(STRING, FIRST) +#endif + // Required system headers. #include #include @@ -50,6 +56,7 @@ #include "modules.h" #include "configreader.h" #include "inspstring.h" +#include "protocol.h" /** * Used to define the maximum number of parameters a command may have. @@ -232,11 +239,13 @@ DEFINE_HANDLER1(FloodQuitUserHandler, void, User*); class XLineManager; class BanCacheManager; -class ConfigReaderThread : public Thread +class CoreExport ConfigReaderThread : public Thread { InspIRCd* ServerInstance; + bool do_bail; + User* TheUser; public: - ConfigReaderThread(InspIRCd* Instance) : Thread(), ServerInstance(Instance) + ConfigReaderThread(InspIRCd* Instance, bool bail, User* user) : Thread(), ServerInstance(Instance), do_bail(bail), TheUser(user) { } @@ -281,9 +290,9 @@ class CoreExport InspIRCd : public classbase */ void DoSocketTimeouts(time_t TIME); - /** Sets up UID subsystem + /** Increments the current UID by one. */ - void InitialiseUID(); + void IncrementUID(int pos); /** Perform background user events such as PING checks */ @@ -455,6 +464,10 @@ class CoreExport InspIRCd : public classbase */ int s_signal; + /** Protocol interface, overridden by server protocol modules + */ + ProtocolInterface* PI; + /** Get the current time * Because this only calls time() once every time around the mainloop, * it is much faster than calling time() directly. @@ -787,23 +800,6 @@ class CoreExport InspIRCd : public classbase */ InspIRCd(int argc, char** argv); - /** Output a log message to the ircd.log file - * The text will only be output if the current loglevel - * is less than or equal to the level you provide - * @param level A log level from the DebugLevel enum - * @param text Format string of to write to the log - * @param ... Format arguments of text to write to the log - */ - void Log(int level, const char* text, ...); - - /** Output a log message to the ircd.log file - * The text will only be output if the current loglevel - * is less than or equal to the level you provide - * @param level A log level from the DebugLevel enum - * @param text Text to write to the log - */ - void Log(int level, const std::string &text); - /** Send a line of WHOIS data to a user. * @param user user to send the line to * @param dest user being WHOISed @@ -819,7 +815,7 @@ class CoreExport InspIRCd : public classbase * @param format Format string for the numeric * @param ... Parameters for the format string */ - void SendWhoisLine(User* user, User* dest, int numeric, const char* format, ...); + void SendWhoisLine(User* user, User* dest, int numeric, const char* format, ...) CUSTOM_PRINTF(5, 6); /** Quit a user for excess flood, and if they are not * fully registered yet, temporarily zline their IP.