Allow opermotd to specify its file in <files> without also requiring an <opermotd> block

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12355 e03df62e-2008-0410-955e-edbf42e46eb7
This commit is contained in:
danieldg 2010-02-02 19:03:07 +00:00
parent f2256deeef
commit 9d4004e8d4
5 changed files with 20 additions and 45 deletions

View File

@ -693,6 +693,7 @@ void FileReader::LoadFile(const std::string &filename)
}
else
{
fc.clear();
FILE* f = fopen(filename.c_str(), "r");
if (!f)
return;

View File

@ -46,12 +46,12 @@ class ModuleHTTPAccessList : public Module
void ReadConfig()
{
acl_list.clear();
ConfigReader c;
int n_items = c.Enumerate("httpdacl");
for (int i = 0; i < n_items; ++i)
ConfigTagList acls = ServerInstance->Config->ConfTags("httpdacl");
for (ConfigIter i = acls.first; i != acls.second; i++)
{
std::string path = c.ReadValue("httpdacl", "path", i);
std::string types = c.ReadValue("httpdacl", "types", i);
ConfigTag* c = i->second;
std::string path = c->getString("path");
std::string types = c->getString("types");
irc::commasepstream sep(types);
std::string type;
std::string username;
@ -63,16 +63,16 @@ class ModuleHTTPAccessList : public Module
{
if (type == "password")
{
username = c.ReadValue("httpdacl", "username", i);
password = c.ReadValue("httpdacl", "password", i);
username = c->getString("username");
password = c->getString("password");
}
else if (type == "whitelist")
{
whitelist = c.ReadValue("httpdacl", "whitelist", i);
whitelist = c->getString("whitelist");
}
else if (type == "blacklist")
{
blacklist = c.ReadValue("httpdacl", "blacklist", i);
blacklist = c->getString("blacklist");
}
else
{

View File

@ -16,25 +16,11 @@
#include "protocol.h"
/* $ModDesc: Provides statistics over HTTP via m_httpd.so */
/* $ModDep: httpd.h */
class ModuleHttpStats : public Module
class ModuleHttpConfig : public Module
{
std::string stylesheet;
bool changed;
public:
void ReadConfig()
{
ConfigReader c;
this->stylesheet = c.ReadValue("httpstats", "stylesheet", 0);
}
ModuleHttpStats() {
ReadConfig();
this->changed = true;
ModuleHttpConfig() {
Implementation eventlist[] = { I_OnEvent };
ServerInstance->Modules->Attach(eventlist, this, 1);
}
@ -108,14 +94,14 @@ class ModuleHttpStats : public Module
}
}
virtual ~ModuleHttpStats()
virtual ~ModuleHttpConfig()
{
}
virtual Version GetVersion()
{
return Version("Provides statistics over HTTP via m_httpd.so", VF_VENDOR);
return Version("Provides configuration over HTTP via m_httpd.so", VF_VENDOR);
}
};
MODULE_INIT(ModuleHttpStats)
MODULE_INIT(ModuleHttpConfig)

View File

@ -21,20 +21,10 @@
class ModuleHttpStats : public Module
{
static std::map<char, char const*> const &entities;
std::string stylesheet;
bool changed;
public:
void ReadConfig()
{
ConfigReader c;
this->stylesheet = c.ReadValue("httpstats", "stylesheet", 0);
}
ModuleHttpStats() {
ReadConfig();
this->changed = true;
Implementation eventlist[] = { I_OnEvent };
ServerInstance->Modules->Attach(eventlist, this, 1);
}

View File

@ -63,12 +63,9 @@ class ModuleOpermotd : public Module
void LoadOperMOTD()
{
ConfigReader conf;
std::string filename;
filename = conf.ReadValue("opermotd","file",0);
delete opermotd;
opermotd = new FileReader(filename);
onoper = conf.ReadFlag("opermotd","onoper","yes",0);
ConfigTag* conf = ServerInstance->Config->ConfValue("opermotd");
opermotd->LoadFile(conf->getString("file","opermotd"));
onoper = conf->getBool("onoper", true);
}
ModuleOpermotd()
@ -84,6 +81,8 @@ class ModuleOpermotd : public Module
virtual ~ModuleOpermotd()
{
delete opermotd;
opermotd = NULL;
}
virtual Version GetVersion()
@ -91,7 +90,6 @@ class ModuleOpermotd : public Module
return Version("Shows a message to opers after oper-up, adds /opermotd", VF_VENDOR);
}
virtual void OnOper(User* user, const std::string &opertype)
{
if (onoper)