#include <vector>
#include <map>
#include "inspircd.h"
-#include "globals.h"
#include "modules.h"
#include "socketengine.h"
#include "socket.h"
*/
typedef ValueContainer<int*> ValueContainerInt;
+typedef ValueContainer<size_t*> ValueContainerST;
+
/** A set of ValueItems used by multi-value validator functions
*/
typedef std::deque<ValueItem> ValueList;
ServerLimits() : NickMax(31), ChanMax(64), MaxModes(20), IdentMax(12), MaxQuit(255), MaxTopic(307), MaxKick(255), MaxGecos(128), MaxAway(200)
{
}
+
+ void Finalise()
+ {
+ NickMax++;
+ ChanMax++;
+ IdentMax++;
+ MaxQuit++;
+ MaxTopic++;
+ MaxKick++;
+ MaxGecos++;
+ MaxAway++;
+ }
};
/** This class holds the bulk of the runtime configuration for the ircd.
* configutation, appending errors to errorstream
* and setting error if an error has occured.
*/
- bool ParseLine(ConfigDataHash &target, std::string &line, long &linenumber, std::ostringstream &errorstream);
+ bool ParseLine(ConfigDataHash &target, const std::string &filename, std::string &line, long &linenumber, std::ostringstream &errorstream);
/** Check that there is only one of each configuration item
*/
bool CheckOnce(const char* tag, ConfigDataHash &newconf);
public:
-
/** Process an include executable directive
*/
bool DoPipe(ConfigDataHash &target, const std::string &file, std::ostringstream &errorstream);
ServerLimits Limits;
+ /** Clones CIDR range for ipv4 (0-32)
+ * Defaults to 32 (checks clones on all IPs seperately)
+ */
+ int c_ipv4_range;
+
+ /** Clones CIDR range for ipv6 (0-128)
+ * Defaults to 128 (checks on all IPs seperately)
+ */
+ int c_ipv6_range;
+
/** Max number of WhoWas entries per user.
*/
int WhoWasGroupSize;
*/
char DisabledCommands[MAXBUF];
+ /** This variable identifies which usermodes have been diabled.
+ */
+
+ char DisabledUModes[64];
+
+ /** This variable identifies which chanmodes have been disabled.
+ */
+ char DisabledCModes[64];
+
/** The full path to the modules directory.
* This is either set at compile time, or
* overridden in the configuration file via