[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