aboutsummaryrefslogtreecommitdiffstats
path: root/src/configreader.cpp
diff options
context:
space:
mode:
authorGravatar Daniel De Graaf2010-03-04 16:19:05 -0600
committerGravatar Daniel De Graaf2010-08-03 17:32:39 -0400
commit79b10a91f50757c9b82164fe34cefd8514b665d4 (patch)
tree2bddfea2be6a43ab9ae218a647c509cf1d5984e3 /src/configreader.cpp
parentCompile fix (diff)
Allow <oper:classes> to specify classes in addition to <type:classes>
Diffstat (limited to 'src/configreader.cpp')
-rw-r--r--src/configreader.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/configreader.cpp b/src/configreader.cpp
index eca203a6c..8be723c10 100644
--- a/src/configreader.cpp
+++ b/src/configreader.cpp
@@ -264,6 +264,16 @@ void ServerConfig::CrossCheckOperClassType()
ifo->type_block = tblk->second->type_block;
ifo->class_blocks.assign(tblk->second->class_blocks.begin(), tblk->second->class_blocks.end());
oper_blocks[name] = ifo;
+
+ std::string classname;
+ irc::spacesepstream str(tag->getString("classes"));
+ while (str.GetToken(classname))
+ {
+ LocalIndex::iterator cls = operclass.find(classname);
+ if (cls == operclass.end())
+ throw CoreException("Oper " + name + " has missing class " + classname);
+ ifo->class_blocks.push_back(cls->second);
+ }
}
}