- ConnectClass c(timeout, flood, allow, pingfreq, password, threshold, sendq, recvq, localmax, globalmax);
- conf->Classes.push_back(c);
+ /* Find 'parent' and inherit a new class from it,
+ * then overwrite any values that are set here
+ */
+ for (ClassVector::iterator item = conf->Classes.begin(); item != conf->Classes.end(); ++item)
+ {
+ if (item->GetName() == name)
+ {
+ ConnectClass c(name, *item);
+ c.Update(timeout, flood, *allow ? allow : deny, pingfreq, password, threshold, sendq, recvq, localmax, globalmax, maxchans, port);
+ conf->Classes.push_back(c);
+ }
+ }
+ throw CoreException("Class name '" + std::string(name) + "' is configured to inherit from class '" + std::string(name) + "' which cannot be found.");