[IRC-DEV] Bug del +ov
LZ
elezeta at eresmas.com
Fri Aug 16 20:21:03 CEST 2002
Antes de nada, aclarar (para evitar flames de ignorantes) que este bug no es
ni del ircd, ni del cliente, sino del protocolo (ahora aclaro esto, para
evitar flames porque el bug no sea del ircd... bien, el bug no es del ircd,
pero se puede arreglar con él). Dicho bug será conocido por bastante gente
ya, y consiste en que al recibir el listado de names, el servidor no puede
determinarle al cliente qué nick tiene los modos +o (@) y +v (+) a la vez...
Pongamos el siguiente ejemplo:
nick1 crea canal #prueba, como estaba vacío, tiene op:
nick1 sets mode #prueba: +m (solo ops y voices podrán hablar)
nick1 sets mode #prueba: +v nick1 (ahora, nick1 tiene VOZ y OP)
nick2 entra a #prueba
nick2 recibe en el listado de names: #prueba @nick1
nick1 sets mode #prueba: -o nick1 (nick1 tiene voz, pero nick2 lo ve como si
no tuviera)
<nick1> bla bla bla
<nick1> canal moderado pero puedo hablar
Uhmmmmm, la forma lógica de hacer el protocolo era que se pudiera recibir en
el names: @+nick1, pero como no se puede (supongo), y dudo que sea
compatible con los clientes, la otra forma que se me ocurre es esta:
nick2 entra a canal #prueba, donde está @+nick1
nick2 recibe el names de #prueba como hasta ahora: #prueba @nick1
e inmediatamente después recibe: :gaia.irc-hispano.org MODE #prueba :+v
nick1
Si hay más nicks, hasta el límite de modos normal del server, es decir:
:gaia.irc-hispano.org MODE #prueba :+vvvvvv nick1 nick2 nick3 nick4 nick5
nick6
:gaia.irc-hispano.org MODE #prueba :+vvvv nick7 nick8 nick9 nick10
etc.
El problema de esto es que queda feo... así que tampoco estaría mal
(supongo, es una idea, no flames please) que esto solo se llevara a cabo si
el usuario que entra tuviera un modo activado, en plan que si activa el modo
estando en algún canal donde ocurra eso, se le envíe el mode, y si lo
desactiva, se deje tal y como está...
Espero opiniones, insultos, sugerencias, etc. (no flames).
LZ.
P.D: no flames.
More information about the IRC-Dev
mailing list