aboutsummaryrefslogtreecommitdiff
path: root/src/modules/m_spanningtree/ijoin.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Update copyright headers.Gravatar InspIRCd Robot2020-01-111-1/+3
|
* Textual improvements and fixes such as typos, casing, etc. (#1612)Gravatar Robby2019-04-281-1/+1
|
* Use CommandBase::Params instead of std::vector<std::string>.Gravatar Peter Powell2018-07-261-2/+2
| | | | | This is presently a typedef but will soon be replaced with a class that encapsulates both tags and parameters.
* m_spanningtree Allow IJOIN with lower TSGravatar Attila Molnar2016-04-131-4/+2
|
* m_spanningtree Send, parse and translate IJOINs with membership idsGravatar Attila Molnar2014-06-111-4/+9
|
* m_spanningtree Add ServerCommand::ExtractTS() to convert string to raw TSGravatar Attila Molnar2014-04-161-7/+1
| | | | Throws a ProtocolException if the input is invalid
* m_spanningtree Throw an exception on protocol violations instead of ↵Gravatar Attila Molnar2014-04-161-8/+2
| | | | | | returning CMD_INVALID Catch CoreExceptions, log and close the link in OnDataReady()
* m_spanningtree Introduce command buildersGravatar attilamolnar2013-08-271-3/+1
|
* m_spanningtree Allow server-to-server command handlers to specify whether ↵Gravatar attilamolnar2013-08-251-10/+5
| | | | | | they accept servers, remote users or both as the command source To make life easier for handlers accepting servers only as source, pass them a TreeServer* so they don't have to call FindServer()
* m_spanningtree Move all server-to-server command handlers into handler classesGravatar attilamolnar2013-08-181-2/+2
| | | | These commands are not registered in or called by the core. When looking for the handler of a command a new command table is searched first which contains all server-to-server commands. If a handler cannot be found in there, the core command table is consulted.
* m_spanningtree Remove SpanningTreeUtilities* fields and parametersGravatar attilamolnar2013-08-171-2/+0
|
* Change modules to use the MODNAME constant when logging.Gravatar Peter Powell2013-08-041-6/+6
| | | | | | | | The majority of modules were logging with their module name as the log type. There was a few places which were logging to a non-name type but, with the exception of CONFIG, those messages are so uncommon that it doesn't make sense to use a seperate type for them.
* m_spanningtree Introduce IJOIN and RESYNCGravatar attilamolnar2013-04-131-0/+93
When a local user joins an existing channel, instead of an FJOIN, send an IJOIN with the channel name being the first parameter. If the joining user received prefix modes, append the channel TS and the prefix mode letters as the second and third parameters. When receiving an IJOIN, first check if the target channel exists. If it does not exist, ignore the join (that is, do not create the channel) and send a RESYNC back to the source. If the channel does exist then join the user, and in case any prefix modes were sent (found in the 3rd parameter), compare the TS of the channel to the TS in the IJOIN (2nd parameter). If the timestamps match, set the modes on the user, otherwise ignore the modes. Outgoing IJOINs to 1202 protocol servers are converted to FJOINs, but the channel mode parameter is left empty ("+").