* | Inspire Internet Relay Chat Daemon |
* +------------------------------------+
*
- * InspIRCd: (C) 2002-2008 InspIRCd Development Team
+ * InspIRCd: (C) 2002-2009 InspIRCd Development Team
* See: http://www.inspircd.org/wiki/index.php/Credits
*
* This program is free but copyrighted software; see
* ---------------------------------------------------
*/
-/* $Core: libIRCDmodules */
+/* $Core */
#include "inspircd.h"
-#include "wildcard.h"
#include "xline.h"
#include "socket.h"
#include "socketengine.h"
#endif
// version is a simple class for holding a modules version number
-Version::Version(int major, int minor, int revision, int build, int flags, int api_ver)
-: Major(major), Minor(minor), Revision(revision), Build(build), Flags(flags), API(api_ver)
+Version::Version(const std::string &sversion, int flags, int api_ver)
+: version(sversion), Flags(flags), API(api_ver)
{
}
// These declarations define the behavours of the base class Module (which does nothing at all)
- Module::Module(InspIRCd* Me) : ServerInstance(Me) { }
- Module::~Module() { }
+Module::Module(InspIRCd* Me) : ServerInstance(Me) { }
+Module::~Module() { }
+
+int Module::OnSendSnotice(char &snomask, std::string &type, const std::string &message) { return 0; }
void Module::OnUserConnect(User*) { }
void Module::OnUserQuit(User*, const std::string&, const std::string&) { }
void Module::OnUserDisconnect(User*) { }
void Module::OnServerRaw(std::string&, bool, User*) { }
int Module::OnUserPreJoin(User*, Channel*, const char*, std::string&, const std::string&) { return 0; }
void Module::OnMode(User*, void*, int, const std::string&) { }
-Version Module::GetVersion() { return Version(1,0,0,0,VF_VENDOR,-1); }
+Version Module::GetVersion() { return Version("Misconfigured", VF_VENDOR, -1); }
void Module::OnOper(User*, const std::string&) { }
void Module::OnPostOper(User*, const std::string&, const std::string &) { }
void Module::OnInfo(User*) { }
void Module::OnGetServerDescription(const std::string&, std::string&) { }
void Module::OnSyncUser(User*, Module*, void*) { }
void Module::OnSyncChannel(Channel*, Module*, void*) { }
-void Module::ProtoSendMode(void*, int, void*, const std::string&) { }
+void Module::ProtoSendMode(void*, TargetTypeFlags, void*, const std::string&) { }
void Module::OnSyncChannelMetaData(Channel*, Module*, void*, const std::string&, bool) { }
void Module::OnSyncUserMetaData(User*, Module*, void*, const std::string&, bool) { }
void Module::OnSyncOtherMetaData(Module*, void*, bool) { }
void Module::OnDecodeMetaData(int, void*, const std::string&, const std::string&) { }
-void Module::ProtoSendMetaData(void*, int, void*, const std::string&, const std::string&) { }
+void Module::ProtoSendMetaData(void*, TargetTypeFlags, void*, const std::string&, const std::string&) { }
void Module::OnWallops(User*, const std::string&) { }
void Module::OnChangeHost(User*, const std::string&) { }
void Module::OnChangeName(User*, const std::string&) { }
void Module::OnNamesListItem(User*, User*, Channel*, std::string&, std::string&) { }
int Module::OnNumeric(User*, unsigned int, const std::string&) { return 0; }
void Module::OnHookUserIO(User*, const std::string&) { }
+bool Module::OnHostCycle(User* user) { return false; }
ModuleManager::ModuleManager(InspIRCd* Ins) : ModCount(0), Instance(Ins)
{
dirent* entry = NULL;
while (0 != (entry = readdir(library)))
{
- if (Instance->MatchText(entry->d_name, filename))
+ if (InspIRCd::Match(entry->d_name, filename, ascii_case_insensitive_map))
{
if (!this->Load(entry->d_name))
n_match++;
}
else
{
- Instance->Logs->Log("MODULE", DEFAULT,"New module introduced: %s (API version %d, Module version %d.%d.%d.%d)%s", filename, v.API, v.Major, v.Minor, v.Revision, v.Build, (!(v.Flags & VF_VENDOR) ? " [3rd Party]" : " [Vendor]"));
+ Instance->Logs->Log("MODULE", DEFAULT,"New module introduced: %s (API version %d, Module version %s)%s", filename, v.API, v.version.c_str(), (!(v.Flags & VF_VENDOR) ? " [3rd Party]" : " [Vendor]"));
}
Modules[filename_str] = std::make_pair(newhandle, newmod);
return NULL;
}
-bool InspIRCd::MatchText(const std::string &sliteral, const std::string &spattern)
-{
- return match(sliteral, spattern);
-}
-
CmdResult InspIRCd::CallCommandHandler(const std::string &commandname, const std::vector<std::string>& parameters, User* user)
{
return this->Parser->CallHandler(commandname, parameters, user);
this->error = CONF_NO_ERROR;
this->data = &ServerInstance->Config->config_data;
this->privatehash = false;
+ this->error = 0;
}
this->readerror = ServerInstance->Config->DoInclude(*this->data, filename, *this->errorlog);
if (!this->readerror)
this->error = CONF_FILE_NOT_FOUND;
+ this->error = 0;
}
void ConfigReader::DumpErrors(bool bail, User* user)
{
- ServerInstance->Config->ReportConfigError(this->errorlog->str(), bail, user);
+ ServerInstance->Config->ReportConfigError(this->errorlog->str(), bail, user->uuid);
}