CoreExport extern InspIRCd* ServerInstance;
#include "config.h"
+#include "dynref.h"
#include "consolecolors.h"
#include "caller.h"
#include "cull_list.h"
#include "extensible.h"
+#include "fileutils.h"
#include "numerics.h"
#include "uid.h"
#include "users.h"
DEFINE_HANDLER2(GenRandomHandler, void, char*, size_t);
DEFINE_HANDLER1(IsIdentHandler, bool, const std::string&);
DEFINE_HANDLER1(IsChannelHandler, 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.
*/
bool DaemonSeed();
- /** Iterate the list of BufferedSocket objects, removing ones which have timed out
- * @param TIME the current time
- */
- void DoSocketTimeouts(time_t TIME);
-
/** The current time, updated in the mainloop
*/
struct timespec TIME;
IsIdentHandler HandleIsIdent;
OnCheckExemptionHandler HandleOnCheckExemption;
IsChannelHandler HandleIsChannel;
- RehashHandler HandleRehash;
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
/** Holds extensible for user operquit
*/
- LocalStringExt OperQuit;
+ StringExtItem OperQuit;
/** Manages the generation and transmission of ISUPPORT. */
ISupportManager ISupport;
caller1<bool, const std::string&> IsChannel;
/** Return true if str looks like a server ID
- * @param string to check against
+ * @param sid string to check against
*/
static bool IsSID(const std::string& sid);
- /** Rehash the local server
- */
- caller1<void, const std::string&> Rehash;
-
/** Handles incoming signals after being set
* @param signal the signal recieved
*/
*/
static void QuickExit(int status);
- /** Printf-wrapper.
- * @param How you want it formatted
- * @param ...
+ /** Formats the input string with the specified arguments.
+ * @param formatString The string to format
+ * @param ... A variable number of format arguments.
* @return The formatted string
*/
static const char* Format(const char* formatString, ...) CUSTOM_PRINTF(1, 2);
*/
caller1<bool, const std::string&> IsIdent;
- /** Add a command to this server's command parser
- * @param f A Command command handler object to add
- * @throw ModuleException Will throw ModuleExcption if the command already exists
- */
- inline void AddCommand(Command *f)
- {
- Modules->AddService(*f);
- }
-
/** Match two strings using pattern matching, optionally, with a map
* to check case against (may be NULL). If map is null, match will be case insensitive.
* @param str The literal string to match against
* @param mask The glob pattern to match against.
* @param map The character map to use when matching.
*/
- static bool Match(const std::string &str, const std::string &mask, unsigned const char *map = NULL);
- static bool Match(const char *str, const char *mask, unsigned const char *map = NULL);
+ static bool Match(const std::string& str, const std::string& mask, unsigned const char* map = NULL);
+ static bool Match(const char* str, const char* mask, unsigned const char* map = NULL);
/** Match two strings using pattern matching, optionally, with a map
* to check case against (may be NULL). If map is null, match will be case insensitive.
* @param mask The glob or CIDR pattern to match against.
* @param map The character map to use when matching.
*/
- static bool MatchCIDR(const std::string &str, const std::string &mask, unsigned const char *map = NULL);
- static bool MatchCIDR(const char *str, const char *mask, unsigned const char *map = NULL);
+ static bool MatchCIDR(const std::string& str, const std::string& mask, unsigned const char* map = NULL);
+ static bool MatchCIDR(const char* str, const char* mask, unsigned const char* map = NULL);
/** Matches a hostname and IP against a space delimited list of hostmasks.
* @param masks The space delimited masks to match against.
* @param mask A nick!user\@host masak to match against
* @return True i the mask is valid
*/
- bool IsValidMask(const std::string &mask);
+ static bool IsValidMask(const std::string& mask);
/** Strips all color codes from the given string
* @param sentence The string to strip from
static void ProcessColors(file_cache& input);
/** Rehash the local server
+ * @param uuid The uuid of the user who started the rehash, can be empty
*/
- void RehashServer();
+ void Rehash(const std::string& uuid = "");
/** Check if the given nickmask matches too many users, send errors to the given user
* @param nick A nickmask to match against
*/
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.
- * @param reason The restart reason to show to all clients
- * @throw CoreException An instance of CoreException indicating the error from execv().
- */
- void Restart(const std::string &reason);
-
/** Prepare the ircd for restart or shutdown.
* This function unloads all modules which can be unloaded,
* closes all open sockets, and closes the logfile.
/** Return a time_t as a human-readable string.
*/
- std::string TimeString(time_t curtime);
+ static std::string TimeString(time_t curtime);
/** Begin execution of the server.
* NOTE: this function NEVER returns. Internally,
{
}
- void init()
- {
- ServerInstance->Modules->AddService(cmd);
- }
-
Version GetVersion()
{
return Version(cmd.name, VF_VENDOR|VF_CORE);