summaryrefslogtreecommitdiff
path: root/src/modules/m_spanningtree/ijoin.cpp
AgeCommit message (Collapse)Author
2014-06-11m_spanningtree Send, parse and translate IJOINs with membership idsAttila Molnar
2014-04-16m_spanningtree Add ServerCommand::ExtractTS() to convert string to raw TSAttila Molnar
Throws a ProtocolException if the input is invalid
2014-04-16m_spanningtree Throw an exception on protocol violations instead of ↵Attila Molnar
returning CMD_INVALID Catch CoreExceptions, log and close the link in OnDataReady()
2013-08-27m_spanningtree Introduce command buildersattilamolnar
2013-08-25m_spanningtree Allow server-to-server command handlers to specify whether ↵attilamolnar
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()
2013-08-18m_spanningtree Move all server-to-server command handlers into handler classesattilamolnar
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.
2013-08-17m_spanningtree Remove SpanningTreeUtilities* fields and parametersattilamolnar
2013-08-04Change modules to use the MODNAME constant when logging.Peter Powell
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.
2013-04-13m_spanningtree Introduce IJOIN and RESYNCattilamolnar
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 ("+").