*/
#define IS_SINGLE(x,y) ( (*x == y) && (*(x+1) == 0) )
-#define DELETE(x) { do_log(DEBUG,"%s:%d: delete()",__FILE__,__LINE__); if (x) { delete x; x = NULL; } else log(DEBUG,"Attempt to delete NULL pointer!"); }
+#define DELETE(x) { InspIRCd::Log(DEBUG,"%s:%d: delete()",__FILE__,__LINE__); if (x) { delete x; x = NULL; } else InspIRCd::Log(DEBUG,"Attempt to delete NULL pointer!"); }
template<typename T> inline std::string ConvToStr(const T &in)
{
void MoveAfter(std::string modulename, std::string after);
void MoveBefore(std::string modulename, std::string before);
+ void ProcessUser(userrec* cu);
+ void DoSocketTimeouts(time_t TIME);
+ void DoBackgroundUserStuff(time_t TIME);
+
public:
time_t startup_time;
ModeParser* ModeGrok;
CommandParser* Parser;
SocketEngine* SE;
serverstats* stats;
+ ServerConfig* Config;
+ std::vector<InspSocket*> module_sockets;
+ InspSocket* socket_ref[MAX_DESCRIPTORS]; /* XXX: This should probably be made private, with inline accessors */
+ userrec* fd_ref_table[MAX_DESCRIPTORS]; /* XXX: Ditto */
DNS* Res;
std::string GetRevision();
bool UnloadModule(const char* filename);
InspIRCd(int argc, char** argv);
void DoOneIteration(bool process_module_sockets);
+ static void Log(int level, const char* text, ...);
+ static void Log(int level, const std::string &text);
int Run();
};