#include <cstring>
#include <climits>
+#include <sstream>
+#include <string>
+#include <vector>
+#include <deque>
+#include <map>
+#include <bitset>
+
+
+/** A list of failed port bindings, used for informational purposes on startup */
+typedef std::vector<std::pair<std::string, std::string> > FailedPortList;
+
+/** A cached text file stored with its contents as lines
+ */
+typedef std::deque< std::string > file_cache;
+
+/** A configuration key and value pair
+ */
+typedef std::pair< std::string, std::string > KeyVal;
+
+/** A list of related configuration keys and values
+ */
+typedef std::vector< KeyVal > KeyValList;
+
+/** An entire config file, built up of KeyValLists
+ */
+typedef std::multimap< std::string, KeyValList > ConfigDataHash;
+
+
#include "inspircd_config.h"
+#include "numerics.h"
#include "uid.h"
#include "users.h"
#include "channels.h"
#include "configreader.h"
#include "inspstring.h"
#include "protocol.h"
-#include <limits.h> // required for PATH_MAX under gcc 4.3, may break windows
+
#ifndef PATH_MAX
#warning Potentially broken system, PATH_MAX undefined
#define PATH_MAX 4096
}
};
-/** A list of failed port bindings, used for informational purposes on startup */
-typedef std::vector<std::pair<std::string, long> > FailedPortList;
-
class InspIRCd;
DEFINE_HANDLER1(ProcessUserHandler, void, User*);
* classbase. Amongst other things, it contains a ModeParser,
* a DNS object, a CommandParser object, and a list of active
* Module objects, and facilities for Module objects to
- * interact with the core system it implements. You should
- * NEVER attempt to instantiate a class of type InspIRCd
- * yourself. If you do, this is equivalent to spawning a second
- * IRC server, and could have catastrophic consequences for the
- * program in terms of ram usage (basically, you could create
- * an obese forkbomb built from recursively spawning irc servers!)
+ * interact with the core system it implements.
*/
class CoreExport InspIRCd : public classbase
{
*/
time_t OLDTIME;
- /** A 64k buffer used to read client lines into
+ /** A 64k buffer used to read socket data into
+ * NOTE: update ValidateNetBufferSize if you change this
*/
char ReadBuffer[65535];
*/
void BufferedSocketCull();
+ /** Adds an extban char to the 005 token.
+ */
+ void AddExtBanChar(char c);
+
char* GetReadBuffer()
{
return this->ReadBuffer;