[IRC-DEV] Sobre el dichoso parche "invited" de ABBA
Jesus Cea Avion
jcea at argo.es
Mon Sep 1 19:58:12 CEST 2003
La verdad es que este parche ha dado más guerra de la que merece.
A partir de ahora exigiré a la gente que escriba parches que tenga
conceptos básicos de dominó, al menos lo justo para entender la idea
simple de "cadena de dominó" y que no, no basta con que el parche
compile para darlo por bueno.
Revisemos uno a uno los usos de "invited":
$ grep -l invited *.c
channel.c
list.c
s_debug.c
s_misc.c
* channel.c:
- En "can_join", que solo se llama si el usuario es local.
- En "add_invite", que solo se llama si el usuario es local.
- En "del_invite", Tras un parche hecho por mí hace unos días, se
llama solo para eliminar los invites "locales" en un canal. Son
locales, porque solo se guardan invites "locales".
- "m_invite": Devuelve canales en los que estamos invitados, pero
solo si es un usuario local.
Esto parece todo correcto.
* list.c:
- "free_user": Se llama desde "list.c" y "s_bsd.c".
Hay una llamada "delicada" en "list.c", para liberar el usuario que
activó la conexión con un servidor determinado. Dicho usuario
puede no ser local, lo que ocasiona la caida del IRCD.
La solución más evidente es reescribir "free_user" y eliminar
uno de los parámetros explícitos.
Al realizar estos cambios, las llamadas "delicadas" en "s_bsd.c"
también se simplifican y se corrigen.
Parche u2.10.H.07.38.
* s_debug:
- "count_memory": Se llama cuando se hace un "/stats z". Esta
función contiene un bug, parcheado ahora (u2.10.H.07.37).
* s_misc:
- "exit_one_client": Solo si es usuario local.
Con esto espero que todos los problemas estén solucionados ya. Con
suerte este mensaje servirá, al menos, para que "algunos" "aprendan" a
depurar y analizar las "cadenas de dominó" :-).
--
Jesus Cea Avion _/_/ _/_/_/ _/_/_/
jcea at argo.es http://www.argo.es/~jcea/ _/_/ _/_/ _/_/ _/_/ _/_/
_/_/ _/_/ _/_/_/_/_/
PGP Key Available at KeyServ _/_/ _/_/ _/_/ _/_/ _/_/
"Things are not so easy" _/_/ _/_/ _/_/ _/_/ _/_/ _/_/
"My name is Dump, Core Dump" _/_/_/ _/_/_/ _/_/ _/_/
"El amor es poner tu felicidad en la felicidad de otro" - Leibniz
More information about the IRC-Dev
mailing list