summaryrefslogtreecommitdiff
path: root/src/modules/m_spanningtree
AgeCommit message (Collapse)Author
2018-12-20Fix thinking that 1202 protocol servers have not finished bursting.Peter Powell
A server introduction is only a burst if all of the parent servers of it are not bursting. Fixes #1527.
2018-12-17Fix not propagating rehashes properly across the network.Peter Powell
The REHASH command is not routed like a normal command. When a rehash that needs to be forwarded is received the local server forwards it indirectly by calling the local REHASH handler which then calls the OnPreRehash hook. This results in the OnPreRehash hook being called whilst loopCall is true. The bug which this check was added to fix seems to no longer be present so no alternate fix for that seems necessary. Closes #1537.
2018-12-13Store durations as unsigned long not long in XLine and m_filter.Peter Powell
2018-12-12Fix conversion issues by replacing ConvToInt with ConvToNum<T>.Peter Powell
The former was a thin wrapper around atol and brought with it all of the weird parsing logic of atol which is almost never what is actually wanted. It also almost never returned the numeric type which is actually wanted which can cause weird issues when casting.
2018-12-12Fix a crash when the core_oper module is not loaded.Peter Powell
2018-10-28Also synchronise the prefix rank between servers.Peter Powell
2018-10-27Fix a shadowing warning in the spanningtree module.Peter Powell
2018-10-27Improve CAPAB negotiation in the spanningtree module.Peter Powell
- Remove the CHANMODES, USERMODES, and PREFIX tokens in the 1205 protocol. These have entirely been superceded by the CHANMODES and USERMODES CAPAB commands. - Only compare the 1202 PREFIX tokens if the remote server did not send CAPAB CHANMODES. This replicates the existing behaviour used for the CHANMODES token. - Fix checking whether the remote server has an appropriate case mapping. If it is not sent we assume it is the same as the local server as always. This should prevent issues with people using services packages that do not send this token yet. - Fix checking if the user modes are mismatched and then promptly overwriting the error message with mismatched channel modes. - Fix servers not being able to tell whether a mode on the remote server is a prefixless prefix mode. Requires the 1205 protocol. - Fix servers that receive CAPAB CHANMODES or CAPAB USERMODES not checking the type of those modes. Requires the 1205 protocol.
2018-10-01Move <security:hidesplits> to the spanningtree module.Peter Powell
2018-10-01Fix the chanhistory module being inconsistent across servers.Peter Powell
Closes #331.
2018-09-11Amend OnPostCommand to specify whether the command is loopcalled.Peter Powell
This restores previous behaviour which was lost when the original line parameter was removed.
2018-08-13Implement IRCv3 message tag support.Peter Powell
Co-authored-by: Attila Molnar <attilamolnar@hush.com>
2018-08-12Convert AWAY to use cross-module events and clean up slightly.Peter Powell
OnSetAway has been replaced with four events. OnUserPreAway and OnUserPreBack can be used to deny an away state change and/or change the away message of a local user. OnUserAway and OnUserBack allow modules to be notified that a user's away state has changed.
2018-08-10Split irc::tokenparser::GetToken into GetMiddle and GetTrailing.Peter Powell
This simplifies the logic of irc::tokenparser considerably and removes all of the magic index guessing that was used previously.
2018-08-10Parse CAPAB CAPABILITIES and FJOIN messages with spacesepstream.Peter Powell
Special tokenisation rules are not necessary here.
2018-08-10Remove the original line parameter of On{Pre,Post}Command.Peter Powell
In the brave new world of message tags and alternate wire formats this is no longer something that is appropriate to expose. In reality it was only ever used by m_alias which now reconstitutes the command name and parameters into a RFC 1459-style message for whatever it needs to do.
2018-08-07Remove the 'debug' snotice character.Peter Powell
2018-08-05Make the FJOIN timestamp message easier for users to understand.Peter Powell
2018-07-30Rename User::fullname to realname and make it private.Peter Powell
2018-07-30Replace most usages of "name" with "real" or "real name".Peter Powell
2018-07-30Replace most usages of "GECOS" with "real" or "real name".Peter Powell
2018-07-26Replace irc::stringjoiner with a generic stdalgo::string::join.Peter Powell
This can also be used with different types of collection containing values which are not a string.
2018-07-26Use CommandBase::Params instead of std::vector<std::string>.Peter Powell
This is presently a typedef but will soon be replaced with a class that encapsulates both tags and parameters.
2018-07-24Make more config stuff case insensitive.Peter Powell
2018-07-24Fix building on Windows.Peter Powell
2018-07-18Initial support for listening on UNIX socket endpoints.Peter Powell
2018-07-18Add the family() member to the sockaddrs union.Peter Powell
2018-07-03Use !empty() instead of 'size() > 0' when checking parameter count.B00mX0r
2018-04-17Convert some usages of ato[il] to use ConvToNum.Peter Powell
2018-04-16Add ConfigTag::getUInt for reading unsigned config values.Peter Powell
2018-04-16Remove the default value in ConfigTag::get{Duration,Float,Int}.Peter Powell
2018-04-11Change ServerInfo::gecos to descriptiongenius3000
2018-04-08Move OnStats from the core to a cross-module event.Peter Powell
Some core code still exists in the XLine system but this will be replaced when the XLine system is replaced later.
2018-01-06Rework message handling.Peter Powell
- Move all message-related types to their own header to make moving them to a cross-module events easier. - Rename OnUserMessage to OnUserPostMessage. - Rename OnText to OnUserMessage. - Replace the dest, target_type, and status parameters with the MessageTarget class. - Replace the text, exempt_list, and msgtype parameters with the MessageDetails struct. - Add echooriginal and originaltext to the MessageDetails struct to allow spam filtering to not be broken by cap echo-message.
2017-12-19Show server versions in /MAP for opersB00mX0r
This resolves #1203
2017-12-03Move OnSync{Channel,Network,User} to ServerEventListener.Peter Powell
2017-12-03Rename the spanningtree module header to server.Peter Powell
In the future we will have server linking modules that are not the spanningtree module.
2017-11-21Add the override keyword in places that it is missing.Peter Powell
GCCs warnings for this are much better than Clangs.
2017-11-17Fix a ton of -Wsign-conversion warnings.Peter Powell
2017-11-12Merge tag 'v2.0.25' into master.Peter Powell
2017-10-28Hide User#host and User#dhost and use accessors to modify them.Peter Powell
This removes the need to invalidate the cache after changing a user's hostname.
2017-10-27Change SetClientIP to take a C++ string instead of a char array.Peter Powell
2017-10-18Add a constructor to OperInfo and use it to set the type name.Peter Powell
2017-10-15Update wiki links to use HTTPS and point to the correct pages.Peter Powell
When we release 3.0 these links will break as they will point to the pages for 3.0 rather than 2.0.
2017-09-08Implement support for configurable casemapping & default to ASCII.Peter Powell
2017-09-03Convert a bunch of time-related config options to getDuration.Peter Powell
2017-08-27Remove module file extensions from user-visible messages.Peter Powell
2017-08-06Purge code for Windows XP and MSVC pre-2015.Peter Powell
2017-07-12Add CXX11_OVERRIDE to overridden members that lack it.Peter Powell
This fixes a ton of warnings when building on compilers that default to C++11 or newer.
2016-12-30Clean up User::FormatModes(), rename to GetModeLetters()Attila Molnar
Prefix the returned string with '+'