Validator validation_function;
};
+struct Deprecated
+{
+ const char* tag;
+ const char* value;
+ const char* reason;
+};
+
/** Holds a core configuration item and its callbacks
* where there may be more than one item
*/
*/
typedef std::map<irc::string,char*> opertype_t;
-struct operclass_data
+struct operclass_data : public Extensible
{
char* commandlist;
char* cmodelist;
/** Check that there is only one of each configuration item
*/
- bool CheckOnce(const char* tag);
+ bool CheckOnce(const char* tag, ConfigDataHash &newconf);
public:
*/
int debugging;
- /** The loglevel in use by the IRC server
- */
- int LogLevel;
-
/** How many seconds to wait before exiting
* the program when /DIE is correctly issued.
*/
*/
std::vector<ListenSocket*> ports;
- /** A list of ports claimed by IO Modules
+ /** socket objects that are attached to by modules
*/
- std::map<int,Module*> IOHookModule;
-
std::map<BufferedSocket*, Module*> SocketIOHookModule;
/** The 005 tokens of this server (ISUPPORT)
*/
bool ReadFile(file_cache &F, const char* fname);
+ /* Returns true if the given string starts with a windows drive letter
+ */
+ bool StartsWithWindowsDriveLetter(const std::string &path);
+
/** Report a configuration error given in errormessage.
* @param bail If this is set to true, the error is sent to the console, and the program exits
* @param user If this is set to a non-null value, and bail is false, the errors are spooled to
void ValidateIP(const char* p, const std::string &tag, const std::string &val, bool wild);
void ValidateNoSpaces(const char* p, const std::string &tag, const std::string &val);
-
- /** Get a pointer to the module which has hooked the given port.
- * @parameter port Port number
- * @return Returns a pointer to the hooking module, or NULL
- */
- Module* GetIOHook(int port);
- /** Hook a module to a client port, so that it can receive notifications
- * of low-level port activity.
- * @param port The port number
- * @param Module the module to hook to the port
- * @return True if the hook was successful.
- */
- bool AddIOHook(int port, Module* iomod);
-
- /** Delete a module hook from a client port.
- * @param port The port to detatch from
- * @return True if successful
- */
- bool DelIOHook(int port);
-
/** Get a pointer to the module which has hooked the given BufferedSocket class.
* @parameter port Port number
* @return Returns a pointer to the hooking module, or NULL