36 #define __STDC_LIMIT_MACROS
58 #include "intrusive_list.h"
61 #include "aligned_storage.h"
66 CoreExport
extern InspIRCd* ServerInstance;
75 return static_cast<T*
>(
this);
81 #include "consolecolors.h"
82 #include "cull_list.h"
83 #include "serialize.h"
84 #include "extensible.h"
85 #include "fileutils.h"
96 #include "usermanager.h"
98 #include "command_parse.h"
100 #include "socketengine.h"
101 #include "snomasks.h"
102 #include "filelogger.h"
105 #include "clientprotocol.h"
106 #include "threadengine.h"
107 #include "configreader.h"
108 #include "inspstring.h"
109 #include "protocol.h"
110 #include "bancache.h"
111 #include "isupportmanager.h"
163 LARGE_INTEGER QPFrequency;
192 struct timespec TIME;
197 char ReadBuffer[65535];
225 User* FindUUID(
const std::string &uid);
320 inline time_t
Time() {
return TIME.tv_sec; }
322 inline long Time_ns() {
return TIME.tv_nsec; }
331 std::string GenRandomStr(
unsigned int length,
bool printable =
true);
335 unsigned long GenRandomInt(
unsigned long max);
345 static void DefaultGenRandom(
char* output,
size_t max);
357 size_t BindPorts(FailedPortList &failed_ports);
364 User* FindNick(
const std::string &nick);
368 User* FindNickOnly(
const std::string &nick);
374 Channel* FindChan(
const std::string &chan);
389 static bool DefaultIsChannel(
const std::string& channel);
395 static bool IsHost(
const std::string& host);
400 static bool IsSID(
const std::string& sid);
405 void SignalHandler(
int signal);
410 static void SetSignal(
int signal);
418 void Exit(
int status);
425 static std::string Format(
const char* formatString, ...) CUSTOM_PRINTF(1, 2);
426 static std::
string Format(va_list& vaList, const
char* formatString) CUSTOM_PRINTF(2, 0);
429 TR1NS::function<
bool(const std::
string&)> IsNick;
436 static
bool DefaultIsNick(const std::
string& nick);
439 TR1NS::function<
bool(const std::
string&)> IsIdent;
446 static
bool DefaultIsIdent(const std::
string& ident);
454 static
bool Match(const std::
string& str, const std::
string& mask,
unsigned const
char* map = NULL);
455 static
bool Match(const
char* str, const
char* mask,
unsigned const
char* map = NULL);
464 static
bool MatchCIDR(const std::
string& str, const std::
string& mask,
unsigned const
char* map = NULL);
465 static
bool MatchCIDR(const
char* str, const
char* mask,
unsigned const
char* map = NULL);
472 static
bool MatchMask(const std::
string& masks, const std::
string& hostname, const std::
string& ipaddr);
478 static
bool IsValidMask(const std::
string& mask);
483 static
void StripColor(std::
string &sentence);
488 static
void ProcessColors(file_cache& input);
493 void Rehash(const std::
string& uuid = "");
500 static
unsigned long Duration(const std::
string& str);
508 static
bool Duration(const std::
string& str,
unsigned long& duration);
514 static
bool IsValidDuration(const std::
string& str);
520 static std::
string DurationString(time_t duration);
531 bool PassCompare(
Extensible* ex, const std::
string& data, const std::
string& input, const std::
string& hashtype);
536 std::
string GetVersionString(
bool getFullVersion = false);
543 void WritePID(const std::
string& filename,
bool exitonfail = true);
567 static std::
string TimeString(time_t curtime, const
char* format = NULL,
bool utc = false);
576 static
bool TimingSafeCompare(const std::
string& one, const std::
string& two);
584 char* GetReadBuffer()
586 return this->ReadBuffer;
594 inline void stdalgo::culldeleter::operator()(
classbase* item)
603 Write(event, status, except_list);
612 #include "numericbuilder.h"
613 #include "clientprotocolmsg.h"
614 #include "clientprotocolevent.h"
Definition: inspircd.h:71
Definition: clientprotocol.h:625
ModeParser Modes
Definition: inspircd.h:239
Definition: extensible.h:139
unsigned long DnsGood
Definition: inspircd.h:139
long Time_ns()
Definition: inspircd.h:322
unsigned long Sent
Definition: inspircd.h:150
Definition: configreader.h:481
std::tr1 ::function< void(char *, size_t)> GenRandom
Definition: inspircd.h:338
BanCacheManager BanCache
Definition: inspircd.h:265
Definition: clientprotocol.h:462
Definition: isupportmanager.h:24
unsigned long Connects
Definition: inspircd.h:147
Definition: command_parse.h:34
ModuleManager Modules
Definition: inspircd.h:260
Definition: cull_list.h:32
timespec LastSampled
Definition: inspircd.h:170
Definition: cull_list.h:56
unsigned long Recv
Definition: inspircd.h:153
unsigned long Refused
Definition: inspircd.h:125
unsigned long Collisions
Definition: inspircd.h:131
ConfigReaderThread * ConfigThread
Definition: inspircd.h:251
CommandParser Parser
Definition: inspircd.h:243
ActionList AtomicActions
Definition: inspircd.h:209
Definition: snomasks.h:80
Definition: protocol.h:41
Definition: modules.h:1050
ProtocolInterface * PI
Definition: inspircd.h:306
std::vector< ListenSocket * > ports
Definition: inspircd.h:298
time_t startup_time
Definition: inspircd.h:229
Definition: threadengine_pthread.h:39
LogManager Logs
Definition: inspircd.h:255
Definition: configreader.h:218
chan_hash & GetChans()
Definition: inspircd.h:379
ProtocolInterface DefaultProtocolInterface
Definition: inspircd.h:310
TimerManager Timers
Definition: inspircd.h:282
FakeUser * FakeClient
Definition: inspircd.h:219
Definition: channels.h:40
timeval LastCPU
Definition: inspircd.h:167
UserManager Users
Definition: inspircd.h:290
Definition: clientprotocol.h:642
static sig_atomic_t s_signal
Definition: inspircd.h:302
Definition: configreader.h:43
ISupportManager ISupport
Definition: inspircd.h:313
Definition: usermanager.h:31
Definition: bancache.h:55
XLineManager * XLines
Definition: inspircd.h:286
ThreadEngine Threads
Definition: inspircd.h:247
Definition: inspircd.h:117
chan_hash chanlist
Definition: inspircd.h:294
void AddItem(classbase *item)
Definition: cull_list.h:40
unsigned long Accept
Definition: inspircd.h:122
unsigned long Dns
Definition: inspircd.h:134
SnomaskManager SNO
Definition: inspircd.h:278
Definition: clientprotocol.h:181
serverstats stats
Definition: inspircd.h:269
ServerConfig * Config
Definition: inspircd.h:273
unsigned long DnsBad
Definition: inspircd.h:144
Definition: extensible.h:181
Definition: inspircd.h:187
std::string ConfigFileName
Definition: inspircd.h:233
time_t Time()
Definition: inspircd.h:320
void Write(ClientProtocol::Event &protoev, char status=0, const CUList &except_list=CUList())
Definition: channels.cpp:420
std::tr1 ::function< bool(const std::string &)> IsChannel
Definition: inspircd.h:382
unsigned long Unknown
Definition: inspircd.h:128
serverstats()
Definition: inspircd.h:174
CullList GlobalCulls
Definition: inspircd.h:207