*/
#define FOREACH_MOD(y,x) do { \
EventHandlerIter safei; \
- for (EventHandlerIter _i = ServerInstance->Modules->EventHandlers[y].begin(); _i != ServerInstance->Modules->EventHandlers[y].end(); ++_i) \
+ for (EventHandlerIter _i = ServerInstance->Modules->EventHandlers[y].begin(); _i != ServerInstance->Modules->EventHandlers[y].end(); ) \
{ \
safei = _i; \
- safei++; \
+ ++safei; \
try \
{ \
(*_i)->x ; \
*/
#define FOREACH_MOD_I(z,y,x) do { \
EventHandlerIter safei; \
- for (EventHandlerIter _i = z->Modules->EventHandlers[y].begin(); _i != z->Modules->EventHandlers[y].end(); ++_i) \
+ for (EventHandlerIter _i = z->Modules->EventHandlers[y].begin(); _i != z->Modules->EventHandlers[y].end(); ) \
{ \
safei = _i; \
- safei++; \
+ ++safei; \
try \
{ \
(*_i)->x ; \
do { \
EventHandlerIter safei; \
MOD_RESULT = 0; \
- for (EventHandlerIter _i = ServerInstance->Modules->EventHandlers[y].begin(); _i != ServerInstance->Modules->EventHandlers[y].end(); ++_i) \
+ for (EventHandlerIter _i = ServerInstance->Modules->EventHandlers[y].begin(); _i != ServerInstance->Modules->EventHandlers[y].end(); ) \
{ \
safei = _i; \
- safei++; \
+ ++safei; \
try \
{ \
int res = (*_i)->x ; \
do { \
EventHandlerIter safei; \
MOD_RESULT = 0; \
- for (EventHandlerIter _i = z->Modules->EventHandlers[y].begin(); _i != z->Modules->EventHandlers[y].end(); ++_i) \
+ for (EventHandlerIter _i = z->Modules->EventHandlers[y].begin(); _i != z->Modules->EventHandlers[y].end(); ) \
{ \
safei = _i; \
- safei++; \
+ ++safei; \
try \
{ \
int res = (*_i)->x ; \
I_OnRawSocketAccept, I_OnRawSocketClose, I_OnRawSocketWrite, I_OnRawSocketRead, I_OnChangeLocalUserGECOS, I_OnUserRegister,
I_OnOperCompare, I_OnChannelDelete, I_OnPostOper, I_OnSyncOtherMetaData, I_OnSetAway, I_OnCancelAway, I_OnUserList,
I_OnPostCommand, I_OnPostJoin, I_OnWhoisLine, I_OnBuildExemptList, I_OnRawSocketConnect, I_OnGarbageCollect, I_OnBufferFlushed,
- I_OnText,
+ I_OnText, I_OnReadConfig, I_OnDownloadFile,
I_END
};
+class ConfigReader;
+
/** Base class for all InspIRCd modules
* This class is the base class for InspIRCd modules. All modules must inherit from this class,
* its methods will be called when irc server events occur. class inherited from module must be
{
}
+ virtual void OnReadConfig(ServerConfig* config, ConfigReader* coreconf);
+
+ virtual int OnDownloadFile(const std::string &filename, std::stringstream &filedata);
+
/** Returns the version number of a Module.
* The method should return a Version object with its version information assigned via
* Version::Version