<feed xmlns='http://www.w3.org/2005/Atom'>
<title>~steering/inspircd++.git/src/modules/m_spanningtree/ijoin.cpp, branch v3.0.0a8</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>https://www.cgit.space/~steering/inspircd++.git/atom/src/modules/m_spanningtree/ijoin.cpp?h=v3.0.0a8</id>
<link rel='self' href='https://www.cgit.space/~steering/inspircd++.git/atom/src/modules/m_spanningtree/ijoin.cpp?h=v3.0.0a8'/>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/'/>
<updated>2016-04-13T09:46:35Z</updated>
<entry>
<title>m_spanningtree Allow IJOIN with lower TS</title>
<updated>2016-04-13T09:46:35Z</updated>
<author>
<name>Attila Molnar</name>
</author>
<published>2016-04-13T09:46:35Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=db8d5f98d628f11899e1de58b67cb65a0fbf2457'/>
<id>urn:sha1:db8d5f98d628f11899e1de58b67cb65a0fbf2457</id>
<content type='text'>
</content>
</entry>
<entry>
<title>m_spanningtree Send, parse and translate IJOINs with membership ids</title>
<updated>2014-06-11T12:30:17Z</updated>
<author>
<name>Attila Molnar</name>
</author>
<published>2014-06-11T12:30:17Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=f3ebd00f119f322f2887f88c37d3fce7743d9587'/>
<id>urn:sha1:f3ebd00f119f322f2887f88c37d3fce7743d9587</id>
<content type='text'>
</content>
</entry>
<entry>
<title>m_spanningtree Add ServerCommand::ExtractTS() to convert string to raw TS</title>
<updated>2014-04-16T11:20:39Z</updated>
<author>
<name>Attila Molnar</name>
</author>
<published>2014-04-16T11:20:39Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=67e0e32b86885df705a92cdc971a6085c4a7c1ba'/>
<id>urn:sha1:67e0e32b86885df705a92cdc971a6085c4a7c1ba</id>
<content type='text'>
Throws a ProtocolException if the input is invalid
</content>
</entry>
<entry>
<title>m_spanningtree Throw an exception on protocol violations instead of returning CMD_INVALID</title>
<updated>2014-04-16T11:08:44Z</updated>
<author>
<name>Attila Molnar</name>
</author>
<published>2014-04-16T11:08:44Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=3eb205218a321e454d873ae14e2e717ce9d64142'/>
<id>urn:sha1:3eb205218a321e454d873ae14e2e717ce9d64142</id>
<content type='text'>
Catch CoreExceptions, log and close the link in OnDataReady()
</content>
</entry>
<entry>
<title>m_spanningtree Introduce command builders</title>
<updated>2013-08-27T13:33:05Z</updated>
<author>
<name>attilamolnar</name>
</author>
<published>2013-08-19T18:22:15Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=7e7e773d4d43e68c18c19e2ec712f4250e5f756d'/>
<id>urn:sha1:7e7e773d4d43e68c18c19e2ec712f4250e5f756d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>m_spanningtree Allow server-to-server command handlers to specify whether they accept servers, remote users or both as the command source</title>
<updated>2013-08-25T11:42:01Z</updated>
<author>
<name>attilamolnar</name>
</author>
<published>2013-08-19T17:11:02Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=d9d9cbe025f94523265daa72de7596467d71f5c8'/>
<id>urn:sha1:d9d9cbe025f94523265daa72de7596467d71f5c8</id>
<content type='text'>
To make life easier for handlers accepting servers only as source, pass them a TreeServer* so they don't have to call FindServer()
</content>
</entry>
<entry>
<title>m_spanningtree Move all server-to-server command handlers into handler classes</title>
<updated>2013-08-18T13:11:02Z</updated>
<author>
<name>attilamolnar</name>
</author>
<published>2013-07-15T11:40:22Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=b14ebbccf08ec34a73e1ba271e67da80d9fe805c'/>
<id>urn:sha1:b14ebbccf08ec34a73e1ba271e67da80d9fe805c</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>m_spanningtree Remove SpanningTreeUtilities* fields and parameters</title>
<updated>2013-08-17T16:27:14Z</updated>
<author>
<name>attilamolnar</name>
</author>
<published>2013-08-15T14:15:26Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=e950f568d0f571e9475aa38177486468714de4d3'/>
<id>urn:sha1:e950f568d0f571e9475aa38177486468714de4d3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Change modules to use the MODNAME constant when logging.</title>
<updated>2013-08-04T12:32:51Z</updated>
<author>
<name>Peter Powell</name>
</author>
<published>2013-07-07T19:01:44Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=abc57eddfb56462ac3e433601d010abf1942e611'/>
<id>urn:sha1:abc57eddfb56462ac3e433601d010abf1942e611</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>m_spanningtree Introduce IJOIN and RESYNC</title>
<updated>2013-04-13T14:22:03Z</updated>
<author>
<name>attilamolnar</name>
</author>
<published>2013-04-12T14:40:16Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=1626437cbf963b16ce44ef6cc829957fd3a7e2ff'/>
<id>urn:sha1:1626437cbf963b16ce44ef6cc829957fd3a7e2ff</id>
<content type='text'>
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 ("+").
</content>
</entry>
</feed>
