diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/configreader.cpp | 14 | ||||
-rw-r--r-- | src/modules.cpp | 2 |
2 files changed, 11 insertions, 5 deletions
diff --git a/src/configreader.cpp b/src/configreader.cpp index 13ef5ddad..ec5f1fe54 100644 --- a/src/configreader.cpp +++ b/src/configreader.cpp @@ -1296,10 +1296,16 @@ void ServerConfig::StartDownloads() ServerInstance->Log(DEBUG,"Module-handled schema for %s", x->first.c_str()); /* For now, error it */ - FileErrors++; - TotalDownloaded++; - delete x->second; - x->second = NULL; + int MOD_RESULT = 0; + FOREACH_RESULT(I_OnDownloadFile, OnDownloadFile(file, reinterpret_cast<std::istringstream*>(x->second))); + if (MOD_RESULT == 0) + { + /* No module claimed this file */ + TotalDownloaded++; + FileErrors++; + delete x->second; + x->second = NULL; + } } } } diff --git a/src/modules.cpp b/src/modules.cpp index d04b0e243..373f1c7b8 100644 --- a/src/modules.cpp +++ b/src/modules.cpp @@ -107,7 +107,7 @@ std::string Event::GetEventID() Module::Module(InspIRCd* Me) : ServerInstance(Me) { } Module::~Module() { } void Module::OnReadConfig(ServerConfig*, ConfigReader*) { } -int Module::OnDownloadFile(const std::string&, std::stringstream&) { return 0; } +int Module::OnDownloadFile(const std::string&, std::istringstream*&) { return 0; } void Module::OnUserConnect(User*) { } void Module::OnUserQuit(User*, const std::string&, const std::string&) { } void Module::OnUserDisconnect(User*) { } |