summaryrefslogtreecommitdiff
path: root/src/server.cpp
AgeCommit message (Collapse)Author
2020-10-30Update copyright headers.InspIRCd Robot
2020-09-30Rename the REALLEN 005 token to NAMELEN.Sadie Powell
Turns out this is already required by the IRCv3 setname spec but we forgot to implement it. Oops.
2020-09-30Add an ISUPPORT token that contains the maximum real name length.Sadie Powell
2020-03-12Move CHANMODES to core_mode and add USERMODES.Sadie Powell
2020-01-11Update copyright headers.InspIRCd Robot
2019-10-01Show the list modes which have variable list lengths in 005.Peter Powell
2019-05-06Re-order the includes to fix C++03 builds.nia
inspircd.h defines __STDC_LIMIT_MACROS to ensure that C99 int type limits are defined, however, if <stdint.h> is included implicitly before inspircd.h, the build fails due to the C99 integer type limits being undefined.
2017-12-23Add ISUPPORT tokens for the host, line, and user length.Peter Powell
This allows clients to accurately predict the maximum safe length of a NOTICE or PRIVMSG and truncate/split as appropriate. As proposed at https://defs.ircdocs.horse/defs/isupport.html
2017-11-17Improve LIST and implement more extended list features.Peter Powell
- Move the ISUPPORT token from the core into core_user and start sending the SAFELIST token to let clients know that they can safely run LIST on big servers. - Add support for the channel creation time (C), topic set time (T), and inverted glob match (N) filters as specified in the draft-hardy-irc-isupport-00 specification. - Clean up the logic for filtering channels by user count.
2017-11-09Implement support for draft-brocklesby-irc-isupport-03 escapes.Peter Powell
2017-10-15Remove INSPIRCD_SOCKETENGINE_NAME and INSPIRCD_SYSTEM.Peter Powell
- INSPIRCD_SOCKETENGINE_NAME is not really something that needs to be user facing. If opers want to know this kind of internal info then they can look at the build configuration. - INSPIRCD_SYSTEM causes problems for reproducible builds and is only accurate for the state of the system when InspIRCd is built which is not useful in the slightest.
2017-09-08Implement support for configurable casemapping & default to ASCII.Peter Powell
2017-07-24Replace the deprecated MAXBANS token with MAXLIST.Peter Powell
2016-09-14Improve the default ISUPPORT tokens.Peter Powell
- Replace the deprecated MAXCHANNELS token with CHANLIMIT. - Remove the deprecated FNC token (other implementations can force a nick change without sending this token so informing clients of that we might force a nick change is pointless)
2016-09-02Update stuff for the new versioning system.Peter Powell
2016-02-25Convert WriteNumeric() calls to pass the parameters of the numeric as method ↵Attila Molnar
parameters
2015-05-17Move InspIRCd::SendError() to cmd_dieAttila Molnar
Fix multiple ERROR messages being sent to unregistered users by removing the "Exiting with status..." message
2014-10-27Merge insp20Attila Molnar
2014-10-13Fix various warnings when building with LLVM 3.5.Peter Powell
- warning: absolute value function 'abs' given an argument of type 'long' but has parameter of type 'int' which may cause truncation of value [-Wabsolute-value] - warning: 'this' pointer cannot be null in well-defined C++ code; pointer may be assumed to always convert to true [-Wundefined-bool-conversion]
2014-09-15Fix incorrect cleanup order in InspIRCd::Exit()Attila Molnar
classbase objects such as callers call LogManager::Log() on destruction unless ServerInstance is NULL
2014-07-14Minor ISupportManager changesAttila Molnar
- Make GetLines() a const method - Rename Lines to cachedlines - Get rid of a variable in Build()
2014-06-22Change all occurrences of plain sort() to std::sort()Attila Molnar
2014-06-13Change allocation of InspIRCd::Threads to be physically part of the object ↵Attila Molnar
containing it
2014-05-23Prefix all definitions in config.h to avoid potential collisions.Peter Powell
2014-04-14Remove WALLCHOPS and WALLVOICES ISUPPORT tokensAttila Molnar
These tokens have been deprecated in favour of STATUSMSG for a long time
2014-02-18Change the parameter type of ModeHandler::GiveModeList() from ModeMasks to ↵Attila Molnar
ModeType
2014-02-08Replace SocketEngine::GetName() with INSPIRCD_SOCKETENGINE_NAME defineAttila Molnar
2013-12-15Remove some pointless code:Peter Powell
- Remove the CHARSET entry from ISUPPORT. CHARSET was removed in draft-brocklesby-irc-isupport-03 and we always used the default value anyway. This has also been removed in the latest version of Charybdis. - Remove irc::sockets::satouser. This helper method was longer than the code it replaced.
2013-11-12Use WriteNumeric() everywhere we send numerics and include the user's nick ↵Adam
automatically
2013-09-08Remove InspIRCd::HandleRehash functorattilamolnar
Call InspIRCd::Rehash() from cmd_rehash and from the SIGHUP handler
2013-08-19Remove cmd_map from the coreattilamolnar
2013-08-04Change the syntax of FOREACH macros to be less dumb.Adam
2013-06-18Remove unused exit codesattilamolnar
2013-06-02ISupportManager: Tidy-up, expand commentsattilamolnar
2013-06-01Remove #define MAXPARAMETERS and "MAXPARA" 005 tokenattilamolnar
2013-05-19Move LogHeader to LogStream.Peter Powell
2013-05-16Fix padding bug in GenerateSID(), spotted by @ShutterQuickattilamolnar
2013-05-15Replace some C-isms with C++-isms.Peter Powell
* 'const char*' to 'const std::string&'. * snprintf to std::string concatenation. * Replace duplicated OneOfMatches with InspIRCd::MatchMask.
2013-04-14Use std::string internally in UIDGenerator, move UUID_LENGTH into the class ↵attilamolnar
as a constant
2013-04-14Simplify UID generation logicattilamolnar
This loop is not required because we already set current_uid[pos] to 'A' before recursing if current_uid[pos] is 9
2013-04-14Extract UID/SID generation logic into a new class: UIDGeneratorattilamolnar
2013-04-11Convert ISUPPORT to use a map instead of a string.Peter Powell
2013-04-05Merge inspircd_{config,version}.h into a single header file.Peter Powell
2013-04-04Stop recreating hashmaps every hour, move garbage collection code related to ↵attilamolnar
local users to UserManager
2012-10-12Windows: In-depth cleanup (see details)ChrisTX
-Fix x64 builds for Windows. Now all configurations compile. -Remove the non-working rebase stuff. -Remove the Windows fork hack and instead use FreeConsole() to emulate the behavior. This directly allows us to compile with ASLR, which is turned on now. -Remove the old IPC mechanism for the removed GUI. This is not needed anymore as the GUI wasn't ever supported on anything newer than 1.2 -Remove the WIN32/WINDOWS macros. _WIN32 is supported on all x86-based VC++ targets, so that's what we need. -Enable optimizations for release builds. -De-duplicate printf_c(), it was previously copy-pasted into colors.h for configure -Add the VC++ specific bad files in .gitignore -Disable PID writing on Windows. This is only making sense for *nix builds. -Replace the CPU usage retrieval with an algorithm analogous to the *nix behavior. Also supports separated now/total values. (Tested with a dummy busy loop - seems working) -Removed certain unused functions and variables -Remove stdint defines from the windows wrapper -Remove CRT debug alloc. This is a bad idea as it would define a macro to replace free which breaks builds. -Re-evaluated the warnings list, commented it. -Moved inspircd_config/_version to include/ to match *nix -Removed the creation of inspircd_se_config, as it isn't used at all. -Made non-git builds show as "r0" instead of "r" (thanks to @SaberUK for pointing this out) -Fixed up m_spanningtree's project paths. Now all configurations (debug/release x86/x64) have been tested and build properly. -Moved FindDNS out of the wrapper and matched its log behavior with *nix. (It's pointless having it in the wrapper after the recent slimming down) -Replaced random/srandom wrappers with a mechanism that tries to use Windows' Random API first is no SSL module is loaded. -Removed more old junk from support for compilers older than VC++ 2010 (we don't have project files for these, so compiling them would be hard anyways) -Removed the unused ClearConsole() -Removed unused includes from the wrapper. Also, do not include psapi.h here if we don't link psapi.lib. This should be done where appropriate. -Made inet_aton an inline function for increased performance -C4800, performance warning about bool forcing, resolved at all occurrences. -C4701, uninitialized variable 'cached', resolved at all occurrences. -dlerror() was migrated out of the wrapper for more thread safety (no global buffer being shared) and increased performance. -Removed the wrong CRT debug flags. This drains a lot of performance. -Removed the clock_gettime/gettimeofday wrappers -Replaced all TCHAR/ANSI mix-ups of functions with the correct respective function. -Added a block of C4355 for < VS2012 -Update project files for c870714
2012-09-30Fix more undefined behavior caused by referencing the returned buffer by ↵attilamolnar
std::string::c_str() when the object is temporary See 83c7cc45daf6fb1f8c36f15297a4657e45a34e88
2012-07-27Don't hard code the branch version.Peter Powell
2012-07-02Add CHANNELLEN to isupportAlyx
2012-05-27While at it, use a constant parameter for calling IncrementUID in GetUIDattilamolnar
Get rid of curindex, use a bool to determine if we need to initialize
2012-05-27Fix generating invalid UIDs after current_uid is 000Z99999 (next UID became ↵attilamolnar
000[AAAAA)