AW: [IRCServices] TS5

Yusuf Iskenderoglu uhc0 at rz.uni-karlsruhe.de
Sun Jul 7 01:00:02 PDT 2002


Hello;

TS3: Bahamut, TR-IRCD4, Hybrid5*, Hybrid6 < 6.2, chunkeymonkey, comstud
etc
TS5: Hybrid6 >= 6.2, Hybrid7, TR-IRCD5

Here a part from the textfile ts5.txt from the source code of
hybrid7/tr-ircd5:

<--->

Whats TS5?
----------

The difference between TS5 and TS3 is what happened on opless channels.
TS
works by establishing which server has the oldest version of the
channel,
the version that is oldest, keeps its modes and ops, the version that is
youngest, removes their modes and ops, and accepts the older version.

There was an exception to this rule with opless channels, if a channel
was
opless, TS3 would allow anybody to keep their ops and modes on the
channel.
TS5 aims to stop this, by removing this exception.

Example1: 

An irc network, with server A (every server is ts3)

UserA is on ServerA, in channel #broken.  This channel is opless, and
has a
TS of 800000000.  ServerA splits, and whilst it is split, UserA cycles
channel #broken, recreates the channel and is given ops.  On ServerA
#broken
now has a TS of 900000000 and has ops.  ServerA rejoins with the
network,
via HubB.  HubB realises #broken is opless, so allows UserA to retain
ops.
The TS is moved forward to 900000000.

The network now sees #broken as having a TS of 900000000, with UserA
being
opped.

Example2:

An irc network, with server C (every server is ts5)

Same scenario as above.  ServerC splits and UserC cycles channel
#broken,
recreating it with a TS of 900000000.  ServerC rejoins with the network
via
HubD.  HubD realises #broken has a TS of 800000000 locally, and ServerC
is
showing a TS of 900000000, it ignores ServerC's modes and ops.  The
channel
remains opless.  ServerC receives HubD's modes, and it notices HubD has
a
lower TS of channel #broken.  It removes UserC's ops, removes the
channel
modes on #broken, and accepts HubD's status.

The network version of #broken hasnt changed.  It is still opless, with
a TS
of 800000000.


As you can see, TS5 makes splitting a server to regain ops useless, as
it
cannot be abused to give ops after a netsplit.

The problem with TS5 however, is what happens on a mixed TS5/TS3
network.
Channels where the older TS has ops will behave the same way on TS5 and
TS3,
however an opless channel will behave differently, as you can see above.

The result of TS5/TS3 mixed can be a desync:

Example1:

As per Example1 above, except the rest of the network is TS5, ServerA is
TS3.  ServerA would keep its modes and ops, whilst the rest of the
network
would remove them.  This means only ServerA would see UserA as opped.
The
desync can be abused, as UserA can send modes.  Hybrid6.0 servers will
accept these modes from the unopped client, so if UserA ops UserB, who
then
ops UserA, the channel will be the same across all Hybrid6.0 and
Hybrid6.1
servers.

Example2:

As per Example2 above, except the rest of the network is TS3.  ServerC
is
TS5.  ServerC would remove its modes and ops, therefore UserC would not
be
opped on ServerC, therefore it could not send any mode changes to the
channel.  Although it is opped elsewhere, it isnt opped locally, so the
desync cannot be abused.

As you can see, the desync's that can occur can either be resynced, or
are
useless to the user, so a mixed TS5/TS3 network is not a huge problem,
although a desync is NOT a good thing to have.

<--->

Result: supporting TS5 is not something special services should handle
carefully,
since services will not introduce channels by itself.

Support of hybrid/comstud is impossible, because:

a) they have no services support for /nickserv /chanserv or SVSNICK,
SVSMODE
b) difficult methods of global klines ( 3 different opers are required
to accept /glines )
c) No topic burst, making topiclock impossible
d) They do not allow users from outside to set topics, kick users, or
(maybe) set modes.

Support for hybrid7 can be possible due to its modular architecture,
only if
hybrid natively supports services. Since this part of work is currently
unfinished,
services cannot support hybrid7 directly.

Hoping to have answered your question,
Regards,
yusuf

------------------------------------------------------------------
| Yusuf Iskenderoglu                | You get to meet all sorts, |
| eMail - uhc0 at stud.uni-karlsruhe.de| in this line of work...    |
| eMail - s_iskend at ira.uka.de       |                            |
| ICQ UIN : 20587464 \ TimeMr14C    |                            |
------------------------------------------------------------------

 

> -----Ursprüngliche Nachricht-----
> Von: ircservices-admin at ircservices.za.net 
> [mailto:ircservices-admin at ircservices.za.net] Im Auftrag von 
> Kevin Intoen
> Gesendet: Samstag, 6. Juli 2002 22:30
> An: ircservices at ircservices.za.net
> Betreff: [IRCServices] TS5
> 
> 
> Hi, another quick question: is anybody working on support for 
> TS5?  I see that there's an rfc1459 module; ts5 is all that 
> is required to support EFNet servers like hybrid and comstud, 
> no?  Or am I mistaken about that?
> 
> ------------------------------------------------------------------
> To unsubscribe or change your subscription options, visit: 
> http://www.ircservices.za.net/mailman/listinfo> /ircservices
>