*/
std::string ConfProcess(char* buffer, long linenumber, std::stringstream* errorstream, bool &error, std::string filename);
+ /** Check that there is only one of each configuration item
+ */
+ bool CheckOnce(char* tag, bool bail, userrec* user);
+
public:
/** Holds the server name of the local server
*/
char ModPath[1024];
+ /** The temporary directory where modules are copied
+ */
+ char TempDir[1024];
+
/** The full pathname to the executable, as
* given in argv[0] when the program starts.
*/
*/
unsigned int SoftLimit;
+ /** Maximum number of targets for a multi target command
+ * such as PRIVMSG or KICK
+ */
+ unsigned int MaxTargets;
+
/** The maximum number of /WHO results allowed
* in any single /WHO command.
*/
*/
int DieDelay;
+ /** True if we're going to hide netsplits as *.net *.split for non-opers
+ */
+ bool HideSplits;
+
+ /** True if we're going to hide ban reasons for non-opers (e.g. G-Lines,
+ * K-Lines, Z-Lines)
+ */
+ bool HideBans;
+
+ /** Set to a non-empty string to obfuscate the server name of users in WHOIS
+ */
+ char HideWhoisServer[MAXBUF];
+
/** A list of IP addresses the server is listening
* on.
*/
*/
char CustomVersion[MAXBUF];
+ /** List of u-lined servers
+ */
+ std::vector<irc::string> ulines;
+
+ /** Max banlist sizes for channels (the std::string is a glob)
+ */
+ std::map<std::string,int> maxbans;
+
ServerConfig();
/** Clears the include stack in preperation for
int BindSocket (int sockfd, struct sockaddr_in client, struct sockaddr_in server, int port, char* addr);
void WritePID(std::string filename);
int BindPorts();
+char* CleanFilename(char* name);
#endif