X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Finspircd.h;h=84995710dcfdeb4995c98800ed22f97a4fb26aff;hb=fe7aa4267324f23d3fbd6c7adb642927896b3305;hp=71a809be9e12b9f5fc49f0ec4c2b13aa1fd0974e;hpb=f1271614679843191bb247c0db2716acb5ac0e4b;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/inspircd.h b/include/inspircd.h index 71a809be9..84995710d 100644 --- a/include/inspircd.h +++ b/include/inspircd.h @@ -29,9 +29,6 @@ #include #include - -//#include -//#include #include "inspircd_config.h" #include "uid.h" #include "users.h" @@ -39,6 +36,7 @@ #include "timer.h" #include "hashcomp.h" #include "typedefs.h" +#include "logger.h" #include "usermanager.h" #include "socket.h" #include "ctables.h" @@ -49,7 +47,6 @@ #include "cull_list.h" #include "filelogger.h" #include "caller.h" -//#include "inspsocket.h" #include "modules.h" #include "configreader.h" #include "inspstring.h" @@ -235,6 +232,23 @@ DEFINE_HANDLER1(FloodQuitUserHandler, void, User*); class XLineManager; class BanCacheManager; +class CoreExport ConfigReaderThread : public Thread +{ + InspIRCd* ServerInstance; + bool do_bail; + User* TheUser; + public: + ConfigReaderThread(InspIRCd* Instance, bool bail, User* user) : Thread(), ServerInstance(Instance), do_bail(bail), TheUser(user) + { + } + + virtual ~ConfigReaderThread() + { + } + + void Run(); +}; + /** The main class of the irc server. * This class contains instances of all the other classes * in this software, with the exception of the base class, @@ -253,7 +267,7 @@ class CoreExport InspIRCd : public classbase private: /** Holds the current UID. Used to generate the next one. */ - char current_uid[UUID_LENGTH]; + char current_uid[UUID_LENGTH + 1]; /** Set up the signal handlers */ @@ -307,15 +321,6 @@ class CoreExport InspIRCd : public classbase */ socklen_t length; - /** Nonblocking file writer - */ - FileLogger* Logger; - - /** Time offset in seconds - * This offset is added to all calls to Time(). Use SetTimeDelta() to update - */ - int time_delta; - #ifdef WIN32 IPC* WindowsIPC; #endif @@ -392,6 +397,18 @@ class CoreExport InspIRCd : public classbase /** Socket engine, handles socket activity events */ SocketEngine* SE; + + /** Thread engine, Handles threading where required + */ + ThreadEngine* Threads; + + /** The thread/class used to read config files in REHASH and on startup + */ + ConfigReaderThread* ConfigThread; + + /** LogManager handles logging. + */ + LogManager *Logs; /** ModuleManager contains everything related to loading/unloading * modules. @@ -443,23 +460,9 @@ class CoreExport InspIRCd : public classbase /** Get the current time * Because this only calls time() once every time around the mainloop, * it is much faster than calling time() directly. - * @param delta True to use the delta as an offset, false otherwise * @return The current time as an epoch value (time_t) */ - time_t Time(bool delta = false); - - /** Set the time offset in seconds - * This offset is added to Time() to offset the system time by the specified - * number of seconds. - * @param delta The number of seconds to offset - * @return The old time delta - */ - int SetTimeDelta(int delta); - - /** Get the time offset in seconds - * @return The current time delta (in seconds) - */ - int GetTimeDelta(); + time_t Time(); /** Process a user whos socket has been flagged as active * @param cu The user to process @@ -481,7 +484,7 @@ class CoreExport InspIRCd : public classbase * @param addr The address to bind to (IP only) * @return True if the port was bound successfully */ - bool BindSocket(int sockfd, int port, char* addr, bool dolisten = true); + bool BindSocket(int sockfd, int port, const char* addr, bool dolisten = true); /** Adds a server name to the list of servers we've seen * @param The servername to add @@ -561,10 +564,6 @@ class CoreExport InspIRCd : public classbase */ bool OpenLog(char** argv, int argc); - /** Close the currently open log file - */ - void CloseLog(); - /** Return true if a channel name is valid * @param chname A channel name to verify * @return True if the name is valid @@ -663,7 +662,7 @@ class CoreExport InspIRCd : public classbase * @param pcnt The number of items you have given in the first parameter * @param user The user to send error messages to */ - void SendMode(const char **parameters, int pcnt, User *user); + void SendMode(const char* const* parameters, int pcnt, User *user); /** Match two strings using pattern matching. * This operates identically to the global function match(), @@ -681,7 +680,7 @@ class CoreExport InspIRCd : public classbase * @param user The user to execute the command as * @return True if the command handler was called successfully */ - CmdResult CallCommandHandler(const std::string &commandname, const char** parameters, int pcnt, User* user); + CmdResult CallCommandHandler(const std::string &commandname, const char* const* parameters, int pcnt, User* user); /** Return true if the command is a module-implemented command and the given parameters are valid for it * @param parameters The mode parameters